-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
Pull block fixes from Jens Axboe: - fix for a memory leak on certain unplug events - a collection of bcache fixes from Kent and Nicolas - a few null_blk fixes and updates form Matias - a marking of static of functions in the stec pci-e driver * 'for-linus' of git://git.kernel.dk/linux-block: null_blk: support submit_queues on use_per_node_hctx null_blk: set use_per_node_hctx param to false null_blk: corrections to documentation null_blk: warning on ignored submit_queues param null_blk: refactor init and init errors code paths null_blk: documentation null_blk: mem garbage on NUMA systems during init drivers: block: Mark the functions as static in skd_main.c bcache: New writeback PD controller bcache: bugfix for race between moving_gc and bucket_invalidate bcache: fix for gc and writeback race bcache: bugfix - moving_gc now moves only correct buckets bcache: fix for gc crashing when no sectors are used bcache: Fix heap_peek() macro bcache: Fix for can_attach_cache() bcache: Fix dirty_data accounting bcache: Use uninterruptible sleep in writeback bcache: kthread don't set writeback task to INTERUPTIBLE block: fix memory leaks on unplugging block device bcache: fix sparse non static symbol warning
- Loading branch information
Showing
13 changed files
with
274 additions
and
94 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
Null block device driver | ||
================================================================================ | ||
|
||
I. Overview | ||
|
||
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). | ||
Multi-queue block-layer | ||
- Request-based. | ||
- Configurable submission queues per device. | ||
No block-layer (Known as bio-based) | ||
- Bio-based. IO requests are submitted directly to the device driver. | ||
- Directly accepts bio data structure and returns them. | ||
|
||
All of them have a completion queue for each core in the system. | ||
|
||
II. Module parameters applicable for all instances: | ||
|
||
queue_mode=[0-2]: Default: 2-Multi-queue | ||
Selects which block-layer the module should instantiate with. | ||
|
||
0: Bio-based. | ||
1: Single-queue. | ||
2: Multi-queue. | ||
|
||
home_node=[0--nr_nodes]: Default: NUMA_NO_NODE | ||
Selects what CPU node the data structures are allocated from. | ||
|
||
gb=[Size in GB]: Default: 250GB | ||
The size of the device reported to the system. | ||
|
||
bs=[Block size (in bytes)]: Default: 512 bytes | ||
The block size reported to the system. | ||
|
||
nr_devices=[Number of devices]: Default: 2 | ||
Number of block devices instantiated. They are instantiated as /dev/nullb0, | ||
etc. | ||
|
||
irq_mode=[0-2]: Default: 1-Soft-irq | ||
The completion mode used for completing IOs to the block-layer. | ||
|
||
0: None. | ||
1: Soft-irq. Uses IPI to complete IOs across CPU nodes. Simulates the overhead | ||
when IOs are issued from another CPU node than the home the device is | ||
connected to. | ||
2: Timer: Waits a specific period (completion_nsec) for each IO before | ||
completion. | ||
|
||
completion_nsec=[ns]: Default: 10.000ns | ||
Combined with irq_mode=2 (timer). The time each completion event must wait. | ||
|
||
submit_queues=[0..nr_cpus]: | ||
The number of submission queues attached to the device driver. If unset, it | ||
defaults to 1 on single-queue and bio-based instances. For multi-queue, | ||
it is ignored when use_per_node_hctx module parameter is 1. | ||
|
||
hw_queue_depth=[0..qdepth]: Default: 64 | ||
The hardware queue depth of the device. | ||
|
||
III: Multi-queue specific parameters | ||
|
||
use_per_node_hctx=[0/1]: Default: 0 | ||
0: The number of submit queues are set to the value of the submit_queues | ||
parameter. | ||
1: The multi-queue block layer is instantiated with a hardware dispatch | ||
queue for each CPU node in the system. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.