~ [ 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-6.9.12)


  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                    75 memory_backed=[0/1]: Default: 0
 76   Whether or not to use a memory buffer to res     76   Whether or not to use a memory buffer to respond to IO requests
 77                                                    77 
 78   =  =========================================     78   =  =============================================
 79   0  Transfer no data in response to IO reques     79   0  Transfer no data in response to IO requests
 80   1  Use a memory buffer to respond to IO requ     80   1  Use a memory buffer to respond to IO requests
 81   =  =========================================     81   =  =============================================
 82                                                    82 
 83 discard=[0/1]: Default: 0                          83 discard=[0/1]: Default: 0
 84   Support discard operations (requires memory-     84   Support discard operations (requires memory-backed null_blk device).
 85                                                    85 
 86   =  =====================================         86   =  =====================================
 87   0  Do not support discard operations             87   0  Do not support discard operations
 88   1  Enable support for discard operations         88   1  Enable support for discard operations
 89   =  =====================================         89   =  =====================================
 90                                                    90 
 91 cache_size=[Size in MB]: Default: 0                91 cache_size=[Size in MB]: Default: 0
 92   Cache size in MB for memory-backed device.       92   Cache size in MB for memory-backed device.
 93                                                    93 
 94 mbps=[Maximum bandwidth in MB/s]: Default: 0 (     94 mbps=[Maximum bandwidth in MB/s]: Default: 0 (no limit)
 95   Bandwidth limit for device performance.          95   Bandwidth limit for device performance.
 96                                                    96 
 97 Multi-queue specific parameters                    97 Multi-queue specific parameters
 98 -------------------------------                    98 -------------------------------
 99                                                    99 
100 use_per_node_hctx=[0/1]: Default: 0               100 use_per_node_hctx=[0/1]: Default: 0
101   Number of hardware context queues.              101   Number of hardware context queues.
102                                                   102 
103   =  =========================================    103   =  =====================================================================
104   0  The number of submit queues are set to th    104   0  The number of submit queues are set to the value of the submit_queues
105      parameter.                                   105      parameter.
106   1  The multi-queue block layer is instantiat    106   1  The multi-queue block layer is instantiated with a hardware dispatch
107      queue for each CPU node in the system.       107      queue for each CPU node in the system.
108   =  =========================================    108   =  =====================================================================
109                                                   109 
110 no_sched=[0/1]: Default: 0                        110 no_sched=[0/1]: Default: 0
111   Enable/disable the io scheduler.                111   Enable/disable the io scheduler.
112                                                   112 
113   =  ======================================       113   =  ======================================
114   0  nullb* use default blk-mq io scheduler       114   0  nullb* use default blk-mq io scheduler
115   1  nullb* doesn't use io scheduler              115   1  nullb* doesn't use io scheduler
116   =  ======================================       116   =  ======================================
117                                                   117 
118 blocking=[0/1]: Default: 0                        118 blocking=[0/1]: Default: 0
119   Blocking behavior of the request queue.         119   Blocking behavior of the request queue.
120                                                   120 
121   =  =========================================    121   =  ===============================================================
122   0  Register as a non-blocking blk-mq driver     122   0  Register as a non-blocking blk-mq driver device.
123   1  Register as a blocking blk-mq driver devi    123   1  Register as a blocking blk-mq driver device, null_blk will set
124      the BLK_MQ_F_BLOCKING flag, indicating th    124      the BLK_MQ_F_BLOCKING flag, indicating that it sometimes/always
125      needs to block in its ->queue_rq() functi    125      needs to block in its ->queue_rq() function.
126   =  =========================================    126   =  ===============================================================
127                                                   127 
128 shared_tags=[0/1]: Default: 0                     128 shared_tags=[0/1]: Default: 0
129   Sharing tags between devices.                   129   Sharing tags between devices.
130                                                   130 
131   =  =========================================    131   =  ================================================================
132   0  Tag set is not shared.                       132   0  Tag set is not shared.
133   1  Tag set shared between devices for blk-mq    133   1  Tag set shared between devices for blk-mq. Only makes sense with
134      nr_devices > 1, otherwise there's no tag     134      nr_devices > 1, otherwise there's no tag set to share.
135   =  =========================================    135   =  ================================================================
136                                                   136 
137 zoned=[0/1]: Default: 0                           137 zoned=[0/1]: Default: 0
138   Device is a random-access or a zoned block d    138   Device is a random-access or a zoned block device.
139                                                   139 
140   =  =========================================    140   =  ======================================================================
141   0  Block device is exposed as a random-acces    141   0  Block device is exposed as a random-access block device.
142   1  Block device is exposed as a host-managed    142   1  Block device is exposed as a host-managed zoned block device. Requires
143      CONFIG_BLK_DEV_ZONED.                        143      CONFIG_BLK_DEV_ZONED.
144   =  =========================================    144   =  ======================================================================
145                                                   145 
146 zone_size=[MB]: Default: 256                      146 zone_size=[MB]: Default: 256
147   Per zone size when exposed as a zoned block     147   Per zone size when exposed as a zoned block device. Must be a power of two.
148                                                   148 
149 zone_nr_conv=[nr_conv]: Default: 0                149 zone_nr_conv=[nr_conv]: Default: 0
150   The number of conventional zones to create w    150   The number of conventional zones to create when block device is zoned.  If
151   zone_nr_conv >= nr_zones, it will be reduced    151   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