Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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 Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0

========================
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.
The following instances are possible:

  Single-queue block-layer

    - Request-based.
    - Single submission queue per device.
    - Implements IO scheduling algorithms (CFQ, Deadline, noop).
It does not execute any read/write operation, just mark them as complete in
the request queue. The following instances are possible:

  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.

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

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

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

@@ -67,7 +64,7 @@ irqmode=[0-2]: Default: 1-Soft-irq
completion_nsec=[ns]: Default: 10,000ns
  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
  defaults to 1. For multi-queue, it is ignored when use_per_node_hctx module
  parameter is 1.
@@ -75,9 +72,11 @@ submit_queues=[1..nr_cpus]:
hw_queue_depth=[0..qdepth]: Default: 64
  The hardware queue depth of the device.

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

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
@@ -87,6 +86,7 @@ use_per_node_hctx=[0/1]: Default: 0
  =  =====================================================================

no_sched=[0/1]: Default: 0
  Enable/disable the 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 behavior of the request queue.

  =  ===============================================================
  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
  Sharing tags between devices.

  =  ================================================================
  0  Tag set is not shared.
@@ -111,6 +113,7 @@ shared_tags=[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.