]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blame - Documentation/block/null_blk.txt
null_blk: corrections to documentation
[mirror_ubuntu-hirsute-kernel.git] / Documentation / block / null_blk.txt
CommitLineData
12f8f4fc
MB
1Null block device driver
2================================================================================
3
4I. Overview
5
6The null block device (/dev/nullb*) is used for benchmarking the various
7block-layer implementations. It emulates a block device of X gigabytes in size.
8The following instances are possible:
9
10 Single-queue block-layer
11 - Request-based.
12 - Single submission queue per device.
13 - Implements IO scheduling algorithms (CFQ, Deadline, noop).
14 Multi-queue block-layer
15 - Request-based.
16 - Configurable submission queues per device.
17 No block-layer (Known as bio-based)
18 - Bio-based. IO requests are submitted directly to the device driver.
19 - Directly accepts bio data structure and returns them.
20
89ed05ee 21All of them have a completion queue for each core in the system.
12f8f4fc
MB
22
23II. Module parameters applicable for all instances:
24
25queue_mode=[0-2]: Default: 2-Multi-queue
26 Selects which block-layer the module should instantiate with.
27
28 0: Bio-based.
29 1: Single-queue.
30 2: Multi-queue.
31
32home_node=[0--nr_nodes]: Default: NUMA_NO_NODE
89ed05ee 33 Selects what CPU node the data structures are allocated from.
12f8f4fc
MB
34
35gb=[Size in GB]: Default: 250GB
36 The size of the device reported to the system.
37
38bs=[Block size (in bytes)]: Default: 512 bytes
39 The block size reported to the system.
40
89ed05ee 41nr_devices=[Number of devices]: Default: 2
12f8f4fc
MB
42 Number of block devices instantiated. They are instantiated as /dev/nullb0,
43 etc.
44
89ed05ee 45irq_mode=[0-2]: Default: 1-Soft-irq
12f8f4fc
MB
46 The completion mode used for completing IOs to the block-layer.
47
48 0: None.
89ed05ee
MB
49 1: Soft-irq. Uses IPI to complete IOs across CPU nodes. Simulates the overhead
50 when IOs are issued from another CPU node than the home the device is
12f8f4fc
MB
51 connected to.
52 2: Timer: Waits a specific period (completion_nsec) for each IO before
53 completion.
54
89ed05ee 55completion_nsec=[ns]: Default: 10.000ns
12f8f4fc
MB
56 Combined with irq_mode=2 (timer). The time each completion event must wait.
57
58submit_queues=[0..nr_cpus]:
59 The number of submission queues attached to the device driver. If unset, it
60 defaults to 1 on single-queue and bio-based instances. For multi-queue,
89ed05ee 61 it is ignored when use_per_node_hctx module parameter is 1.
12f8f4fc 62
89ed05ee 63hw_queue_depth=[0..qdepth]: Default: 64
12f8f4fc
MB
64 The hardware queue depth of the device.
65
66III: Multi-queue specific parameters
67
89ed05ee 68use_per_node_hctx=[0/1]: Default: 1
12f8f4fc
MB
69 If 1, the multi-queue block layer is instantiated with a hardware dispatch
70 queue for each CPU node in the system. If 0, it is instantiated with the
71 number of queues defined in the submit_queues parameter.