Commit 04c56957 authored by André Almeida's avatar André Almeida Committed by Jens Axboe
Browse files

docs: block: null_blk: enhance document style



Use proper ReST syntax for chapters. Add more information to enhance
standardization in the file and to make the rendering more homogeneous.
Add a SPDX identifier. Mark single-queue mode as deprecated.

Signed-off-by: default avatarAndré Almeida <andrealmeid@collabora.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 7c1ee704
Loading
Loading
Loading
Loading
+18 −15
Original line number Original line Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0

========================
========================
Null block device driver
Null block device driver
========================
========================


1. Overview
Overview
===========
========


The null block device (/dev/nullb*) is used for benchmarking the various
The null block device (``/dev/nullb*``) is used for benchmarking the various
block-layer implementations. It emulates a block device of X gigabytes in size.
block-layer implementations. It emulates a block device of X gigabytes in size.
The following instances are possible:
It does not execute any read/write operation, just mark them as complete in

the request queue. The following instances are possible:
  Single-queue block-layer

    - Request-based.
    - Single submission queue per device.
    - Implements IO scheduling algorithms (CFQ, Deadline, noop).


  Multi-queue block-layer
  Multi-queue block-layer


@@ -27,15 +24,15 @@ The following instances are possible:


All of them have a completion queue for each core in the system.
All of them have a completion queue for each core in the system.


2. Module parameters applicable for all instances
Module parameters
=================================================
=================


queue_mode=[0-2]: Default: 2-Multi-queue
queue_mode=[0-2]: Default: 2-Multi-queue
  Selects which block-layer the module should instantiate with.
  Selects which block-layer the module should instantiate with.


  =  ============
  =  ============
  0  Bio-based
  0  Bio-based
  1  Single-queue
  1  Single-queue (deprecated)
  2  Multi-queue
  2  Multi-queue
  =  ============
  =  ============


@@ -67,7 +64,7 @@ irqmode=[0-2]: Default: 1-Soft-irq
completion_nsec=[ns]: Default: 10,000ns
completion_nsec=[ns]: Default: 10,000ns
  Combined with irqmode=2 (timer). The time each completion event must wait.
  Combined with irqmode=2 (timer). The time each completion event must wait.


submit_queues=[1..nr_cpus]:
submit_queues=[1..nr_cpus]: Default: 1
  The number of submission queues attached to the device driver. If unset, it
  The number of submission queues attached to the device driver. If unset, it
  defaults to 1. For multi-queue, it is ignored when use_per_node_hctx module
  defaults to 1. For multi-queue, it is ignored when use_per_node_hctx module
  parameter is 1.
  parameter is 1.
@@ -75,9 +72,11 @@ submit_queues=[1..nr_cpus]:
hw_queue_depth=[0..qdepth]: Default: 64
hw_queue_depth=[0..qdepth]: Default: 64
  The hardware queue depth of the device.
  The hardware queue depth of the device.


III: Multi-queue specific parameters
Multi-queue specific parameters
-------------------------------


use_per_node_hctx=[0/1]: Default: 0
use_per_node_hctx=[0/1]: Default: 0
  Number of hardware context queues.


  =  =====================================================================
  =  =====================================================================
  0  The number of submit queues are set to the value of the submit_queues
  0  The number of submit queues are set to the value of the submit_queues
@@ -87,6 +86,7 @@ use_per_node_hctx=[0/1]: Default: 0
  =  =====================================================================
  =  =====================================================================


no_sched=[0/1]: Default: 0
no_sched=[0/1]: Default: 0
  Enable/disable the io scheduler.


  =  ======================================
  =  ======================================
  0  nullb* use default blk-mq io scheduler
  0  nullb* use default blk-mq io scheduler
@@ -94,6 +94,7 @@ no_sched=[0/1]: Default: 0
  =  ======================================
  =  ======================================


blocking=[0/1]: Default: 0
blocking=[0/1]: Default: 0
  Blocking behavior of the request queue.


  =  ===============================================================
  =  ===============================================================
  0  Register as a non-blocking blk-mq driver device.
  0  Register as a non-blocking blk-mq driver device.
@@ -103,6 +104,7 @@ blocking=[0/1]: Default: 0
  =  ===============================================================
  =  ===============================================================


shared_tags=[0/1]: Default: 0
shared_tags=[0/1]: Default: 0
  Sharing tags between devices.


  =  ================================================================
  =  ================================================================
  0  Tag set is not shared.
  0  Tag set is not shared.
@@ -111,6 +113,7 @@ shared_tags=[0/1]: Default: 0
  =  ================================================================
  =  ================================================================


zoned=[0/1]: Default: 0
zoned=[0/1]: Default: 0
  Device is a random-access or a zoned block device.


  =  ======================================================================
  =  ======================================================================
  0  Block device is exposed as a random-access block device.
  0  Block device is exposed as a random-access block device.