~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/block/null_blk.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/block/null_blk.rst (Version linux-6.12-rc7) and /Documentation/block/null_blk.rst (Version linux-5.16.20)


  1 .. SPDX-License-Identifier: GPL-2.0                 1 .. SPDX-License-Identifier: GPL-2.0
  2                                                     2 
  3 ========================                            3 ========================
  4 Null block device driver                            4 Null block device driver
  5 ========================                            5 ========================
  6                                                     6 
  7 Overview                                            7 Overview
  8 ========                                            8 ========
  9                                                     9 
 10 The null block device (``/dev/nullb*``) is use     10 The null block device (``/dev/nullb*``) is used for benchmarking the various
 11 block-layer implementations. It emulates a blo     11 block-layer implementations. It emulates a block device of X gigabytes in size.
 12 It does not execute any read/write operation,      12 It does not execute any read/write operation, just mark them as complete in
 13 the request queue. The following instances are     13 the request queue. The following instances are possible:
 14                                                    14 
 15   Multi-queue block-layer                          15   Multi-queue block-layer
 16                                                    16 
 17     - Request-based.                               17     - Request-based.
 18     - Configurable submission queues per devic     18     - Configurable submission queues per device.
 19                                                    19 
 20   No block-layer (Known as bio-based)              20   No block-layer (Known as bio-based)
 21                                                    21 
 22     - Bio-based. IO requests are submitted dir     22     - Bio-based. IO requests are submitted directly to the device driver.
 23     - Directly accepts bio data structure and      23     - Directly accepts bio data structure and returns them.
 24                                                    24 
 25 All of them have a completion queue for each c     25 All of them have a completion queue for each core in the system.
 26                                                    26 
 27 Module parameters                                  27 Module parameters
 28 =================                                  28 =================
 29                                                    29 
 30 queue_mode=[0-2]: Default: 2-Multi-queue           30 queue_mode=[0-2]: Default: 2-Multi-queue
 31   Selects which block-layer the module should      31   Selects which block-layer the module should instantiate with.
 32                                                    32 
 33   =  ============                                  33   =  ============
 34   0  Bio-based                                     34   0  Bio-based
 35   1  Single-queue (deprecated)                     35   1  Single-queue (deprecated)
 36   2  Multi-queue                                   36   2  Multi-queue
 37   =  ============                                  37   =  ============
 38                                                    38 
 39 home_node=[0--nr_nodes]: Default: NUMA_NO_NODE     39 home_node=[0--nr_nodes]: Default: NUMA_NO_NODE
 40   Selects what CPU node the data structures ar     40   Selects what CPU node the data structures are allocated from.
 41                                                    41 
 42 gb=[Size in GB]: Default: 250GB                    42 gb=[Size in GB]: Default: 250GB
 43   The size of the device reported to the syste     43   The size of the device reported to the system.
 44                                                    44 
 45 bs=[Block size (in bytes)]: Default: 512 bytes     45 bs=[Block size (in bytes)]: Default: 512 bytes
 46   The block size reported to the system.           46   The block size reported to the system.
 47                                                    47 
 48 nr_devices=[Number of devices]: Default: 1         48 nr_devices=[Number of devices]: Default: 1
 49   Number of block devices instantiated. They a     49   Number of block devices instantiated. They are instantiated as /dev/nullb0,
 50   etc.                                             50   etc.
 51                                                    51 
 52 irqmode=[0-2]: Default: 1-Soft-irq                 52 irqmode=[0-2]: Default: 1-Soft-irq
 53   The completion mode used for completing IOs      53   The completion mode used for completing IOs to the block-layer.
 54                                                    54 
 55   =  =========================================     55   =  ===========================================================================
 56   0  None.                                         56   0  None.
 57   1  Soft-irq. Uses IPI to complete IOs across     57   1  Soft-irq. Uses IPI to complete IOs across CPU nodes. Simulates the overhead
 58      when IOs are issued from another CPU node     58      when IOs are issued from another CPU node than the home the device is
 59      connected to.                                 59      connected to.
 60   2  Timer: Waits a specific period (completio     60   2  Timer: Waits a specific period (completion_nsec) for each IO before
 61      completion.                                   61      completion.
 62   =  =========================================     62   =  ===========================================================================
 63                                                    63 
 64 completion_nsec=[ns]: Default: 10,000ns            64 completion_nsec=[ns]: Default: 10,000ns
 65   Combined with irqmode=2 (timer). The time ea     65   Combined with irqmode=2 (timer). The time each completion event must wait.
 66                                                    66 
 67 submit_queues=[1..nr_cpus]: Default: 1             67 submit_queues=[1..nr_cpus]: Default: 1
 68   The number of submission queues attached to      68   The number of submission queues attached to the device driver. If unset, it
 69   defaults to 1. For multi-queue, it is ignore     69   defaults to 1. For multi-queue, it is ignored when use_per_node_hctx module
 70   parameter is 1.                                  70   parameter is 1.
 71                                                    71 
 72 hw_queue_depth=[0..qdepth]: Default: 64            72 hw_queue_depth=[0..qdepth]: Default: 64
 73   The hardware queue depth of the device.          73   The hardware queue depth of the device.
 74                                                    74 
 75 memory_backed=[0/1]: Default: 0                << 
 76   Whether or not to use a memory buffer to res << 
 77                                                << 
 78   =  ========================================= << 
 79   0  Transfer no data in response to IO reques << 
 80   1  Use a memory buffer to respond to IO requ << 
 81   =  ========================================= << 
 82                                                << 
 83 discard=[0/1]: Default: 0                      << 
 84   Support discard operations (requires memory- << 
 85                                                << 
 86   =  =====================================     << 
 87   0  Do not support discard operations         << 
 88   1  Enable support for discard operations     << 
 89   =  =====================================     << 
 90                                                << 
 91 cache_size=[Size in MB]: Default: 0            << 
 92   Cache size in MB for memory-backed device.   << 
 93                                                << 
 94 mbps=[Maximum bandwidth in MB/s]: Default: 0 ( << 
 95   Bandwidth limit for device performance.      << 
 96                                                << 
 97 Multi-queue specific parameters                    75 Multi-queue specific parameters
 98 -------------------------------                    76 -------------------------------
 99                                                    77 
100 use_per_node_hctx=[0/1]: Default: 0                78 use_per_node_hctx=[0/1]: Default: 0
101   Number of hardware context queues.               79   Number of hardware context queues.
102                                                    80 
103   =  =========================================     81   =  =====================================================================
104   0  The number of submit queues are set to th     82   0  The number of submit queues are set to the value of the submit_queues
105      parameter.                                    83      parameter.
106   1  The multi-queue block layer is instantiat     84   1  The multi-queue block layer is instantiated with a hardware dispatch
107      queue for each CPU node in the system.        85      queue for each CPU node in the system.
108   =  =========================================     86   =  =====================================================================
109                                                    87 
110 no_sched=[0/1]: Default: 0                         88 no_sched=[0/1]: Default: 0
111   Enable/disable the io scheduler.                 89   Enable/disable the io scheduler.
112                                                    90 
113   =  ======================================        91   =  ======================================
114   0  nullb* use default blk-mq io scheduler        92   0  nullb* use default blk-mq io scheduler
115   1  nullb* doesn't use io scheduler               93   1  nullb* doesn't use io scheduler
116   =  ======================================        94   =  ======================================
117                                                    95 
118 blocking=[0/1]: Default: 0                         96 blocking=[0/1]: Default: 0
119   Blocking behavior of the request queue.          97   Blocking behavior of the request queue.
120                                                    98 
121   =  =========================================     99   =  ===============================================================
122   0  Register as a non-blocking blk-mq driver     100   0  Register as a non-blocking blk-mq driver device.
123   1  Register as a blocking blk-mq driver devi    101   1  Register as a blocking blk-mq driver device, null_blk will set
124      the BLK_MQ_F_BLOCKING flag, indicating th    102      the BLK_MQ_F_BLOCKING flag, indicating that it sometimes/always
125      needs to block in its ->queue_rq() functi    103      needs to block in its ->queue_rq() function.
126   =  =========================================    104   =  ===============================================================
127                                                   105 
128 shared_tags=[0/1]: Default: 0                     106 shared_tags=[0/1]: Default: 0
129   Sharing tags between devices.                   107   Sharing tags between devices.
130                                                   108 
131   =  =========================================    109   =  ================================================================
132   0  Tag set is not shared.                       110   0  Tag set is not shared.
133   1  Tag set shared between devices for blk-mq    111   1  Tag set shared between devices for blk-mq. Only makes sense with
134      nr_devices > 1, otherwise there's no tag     112      nr_devices > 1, otherwise there's no tag set to share.
135   =  =========================================    113   =  ================================================================
136                                                   114 
137 zoned=[0/1]: Default: 0                           115 zoned=[0/1]: Default: 0
138   Device is a random-access or a zoned block d    116   Device is a random-access or a zoned block device.
139                                                   117 
140   =  =========================================    118   =  ======================================================================
141   0  Block device is exposed as a random-acces    119   0  Block device is exposed as a random-access block device.
142   1  Block device is exposed as a host-managed    120   1  Block device is exposed as a host-managed zoned block device. Requires
143      CONFIG_BLK_DEV_ZONED.                        121      CONFIG_BLK_DEV_ZONED.
144   =  =========================================    122   =  ======================================================================
145                                                   123 
146 zone_size=[MB]: Default: 256                      124 zone_size=[MB]: Default: 256
147   Per zone size when exposed as a zoned block     125   Per zone size when exposed as a zoned block device. Must be a power of two.
148                                                   126 
149 zone_nr_conv=[nr_conv]: Default: 0                127 zone_nr_conv=[nr_conv]: Default: 0
150   The number of conventional zones to create w    128   The number of conventional zones to create when block device is zoned.  If
151   zone_nr_conv >= nr_zones, it will be reduced    129   zone_nr_conv >= nr_zones, it will be reduced to nr_zones - 1.
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php