Hi, This patch series focusses on adding the support for:- 1. Memory backed REQ_OP_WRITE_ZEROES through configfs. 2. Non Memory backed REQ_OP_DISCARD through module parameter. 3. Non Memory backed REQ_OP_WRITE_ZEROES through module parameter. While the development of the blktrace extension, this support turned out to be useful in the debugging and discovering the various scenarios when dealing with special REQ_OP_XXX (DISCARD, WRITE_ZEROES). Also, for block layer in the blktests, we are missing the tests for write-zeroes. With this support now we can add tests so developers can ensure that any change(s) to the I/O path is not breaking the special REQ_OP_XXX without actually depending on the supporting controller and the respective driver. With this support, I sign-up for writing the testcases for the REQ_OP_WRITE_ZEROES with memory backed null_blk as soon as this series goes upstream in the blktests. If anyone is interested please find the testing log at the end. Regards, Chaitanya Chaitanya Kulkarni (8): null_blk: add module parameter for REQ_OP_DISCARD null_blk: add REQ_OP_WRITE_ZEROES config property null_blk: add support for write-zeroes null_blk: allow memory-backed write-zeroes-req null_blk: code cleaup null_blk: allow memory-backed write-zeroes-bio null_blk: add support for configfs write_zeroes null_blk: adjusts the code with latest changes drivers/block/null_blk.h | 1 + drivers/block/null_blk_main.c | 125 +++++++++++++++++++++++++++------- 2 files changed, 102 insertions(+), 24 deletions(-) # Test log :- Simple Test log for changing the block size and enabling the write-zeroes with null_blk memory backed :- ######################BLKISZ 512####################### config/nullb/nullb0 ├── badblocks ├── blocking ├── blocksize ├── cache_size ├── completion_nsec ├── discard ├── home_node ├── hw_queue_depth ├── index ├── irqmode ├── mbps ├── memory_backed ├── power ├── queue_mode ├── size ├── submit_queues ├── use_per_node_hctx ├── write_zeroes ├── zoned ├── zone_nr_conv └── zone_size 0 directories, 21 files ODD:- 20+0 records in 20+0 records out 10240 bytes (10 kB) copied, 0.00120115 s, 8.5 MB/s 0000000 a a a a a a a a a a a a a a a a 0000016 0000512 a a a a a a a a a a a a a a a a 0000528 0001024 a a a a a a a a a a a a a a a a 0001040 0001536 a a a a a a a a a a a a a a a a 0001552 0002048 a a a a a a a a a a a a a a a a 0002064 0002560 a a a a a a a a a a a a a a a a 0002576 0003072 a a a a a a a a a a a a a a a a 0003088 0003584 a a a a a a a a a a a a a a a a 0003600 0004096 a a a a a a a a a a a a a a a a 0004112 0004608 a a a a a a a a a a a a a a a a 0004624 ------------------------------------------------------ 0000000 a a a a a a a a a a a a a a a a 0000016 0000512 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0000528 0001024 a a a a a a a a a a a a a a a a 0001040 0001536 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0001552 0002048 a a a a a a a a a a a a a a a a 0002064 0002560 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0002576 0003072 a a a a a a a a a a a a a a a a 0003088 0003584 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0003600 0004096 a a a a a a a a a a a a a a a a 0004112 0004608 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0004624 ------------------------------------------------------ EVEN:- 20+0 records in 20+0 records out 10240 bytes (10 kB) copied, 0.00118618 s, 8.6 MB/s 0000000 a a a a a a a a a a a a a a a a 0000016 0000512 a a a a a a a a a a a a a a a a 0000528 0001024 a a a a a a a a a a a a a a a a 0001040 0001536 a a a a a a a a a a a a a a a a 0001552 0002048 a a a a a a a a a a a a a a a a 0002064 0002560 a a a a a a a a a a a a a a a a 0002576 0003072 a a a a a a a a a a a a a a a a 0003088 0003584 a a a a a a a a a a a a a a a a 0003600 0004096 a a a a a a a a a a a a a a a a 0004112 0004608 a a a a a a a a a a a a a a a a 0004624 ------------------------------------------------------ 0000000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0000016 0000512 a a a a a a a a a a a a a a a a 0000528 0001024 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0001040 0001536 a a a a a a a a a a a a a a a a 0001552 0002048 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0002064 0002560 a a a a a a a a a a a a a a a a 0002576 0003072 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0003088 0003584 a a a a a a a a a a a a a a a a 0003600 0004096 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0004112 0004608 a a a a a a a a a a a a a a a a 0004624 ------------------------------------------------------ ######################BLKISZ 1024####################### config/nullb/nullb0 ├── badblocks ├── blocking ├── blocksize ├── cache_size ├── completion_nsec ├── discard ├── home_node ├── hw_queue_depth ├── index ├── irqmode ├── mbps ├── memory_backed ├── power ├── queue_mode ├── size ├── submit_queues ├── use_per_node_hctx ├── write_zeroes ├── zoned ├── zone_nr_conv └── zone_size 0 directories, 21 files ODD:- 20+0 records in 20+0 records out 20480 bytes (20 kB) copied, 0.00134839 s, 15.2 MB/s 0000000 a a a a a a a a a a a a a a a a 0000016 0001024 a a a a a a a a a a a a a a a a 0001040 0002048 a a a a a a a a a a a a a a a a 0002064 0003072 a a a a a a a a a a a a a a a a 0003088 0004096 a a a a a a a a a a a a a a a a 0004112 0005120 a a a a a a a a a a a a a a a a 0005136 0006144 a a a a a a a a a a a a a a a a 0006160 0007168 a a a a a a a a a a a a a a a a 0007184 0008192 a a a a a a a a a a a a a a a a 0008208 0009216 a a a a a a a a a a a a a a a a 0009232 ------------------------------------------------------ 0000000 a a a a a a a a a a a a a a a a 0000016 0001024 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0001040 0002048 a a a a a a a a a a a a a a a a 0002064 0003072 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0003088 0004096 a a a a a a a a a a a a a a a a 0004112 0005120 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0005136 0006144 a a a a a a a a a a a a a a a a 0006160 0007168 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007184 0008192 a a a a a a a a a a a a a a a a 0008208 0009216 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0009232 ------------------------------------------------------ EVEN:- 20+0 records in 20+0 records out 20480 bytes (20 kB) copied, 0.0012485 s, 16.4 MB/s 0000000 a a a a a a a a a a a a a a a a 0000016 0001024 a a a a a a a a a a a a a a a a 0001040 0002048 a a a a a a a a a a a a a a a a 0002064 0003072 a a a a a a a a a a a a a a a a 0003088 0004096 a a a a a a a a a a a a a a a a 0004112 0005120 a a a a a a a a a a a a a a a a 0005136 0006144 a a a a a a a a a a a a a a a a 0006160 0007168 a a a a a a a a a a a a a a a a 0007184 0008192 a a a a a a a a a a a a a a a a 0008208 0009216 a a a a a a a a a a a a a a a a 0009232 ------------------------------------------------------ 0000000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0000016 0001024 a a a a a a a a a a a a a a a a 0001040 0002048 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0002064 0003072 a a a a a a a a a a a a a a a a 0003088 0004096 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0004112 0005120 a a a a a a a a a a a a a a a a 0005136 0006144 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0006160 0007168 a a a a a a a a a a a a a a a a 0007184 0008192 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0008208 0009216 a a a a a a a a a a a a a a a a 0009232 ------------------------------------------------------ ######################BLKISZ 2048####################### config/nullb/nullb0 ├── badblocks ├── blocking ├── blocksize ├── cache_size ├── completion_nsec ├── discard ├── home_node ├── hw_queue_depth ├── index ├── irqmode ├── mbps ├── memory_backed ├── power ├── queue_mode ├── size ├── submit_queues ├── use_per_node_hctx ├── write_zeroes ├── zoned ├── zone_nr_conv └── zone_size 0 directories, 21 files ODD:- 20+0 records in 20+0 records out 40960 bytes (41 kB) copied, 0.00161901 s, 25.3 MB/s 0000000 a a a a a a a a a a a a a a a a 0000016 0002048 a a a a a a a a a a a a a a a a 0002064 0004096 a a a a a a a a a a a a a a a a 0004112 0006144 a a a a a a a a a a a a a a a a 0006160 0008192 a a a a a a a a a a a a a a a a 0008208 0010240 a a a a a a a a a a a a a a a a 0010256 0012288 a a a a a a a a a a a a a a a a 0012304 0014336 a a a a a a a a a a a a a a a a 0014352 0016384 a a a a a a a a a a a a a a a a 0016400 0018432 a a a a a a a a a a a a a a a a 0018448 ------------------------------------------------------ 0000000 a a a a a a a a a a a a a a a a 0000016 0002048 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0002064 0004096 a a a a a a a a a a a a a a a a 0004112 0006144 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0006160 0008192 a a a a a a a a a a a a a a a a 0008208 0010240 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0010256 0012288 a a a a a a a a a a a a a a a a 0012304 0014336 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0014352 0016384 a a a a a a a a a a a a a a a a 0016400 0018432 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0018448 ------------------------------------------------------ EVEN:- 20+0 records in 20+0 records out 40960 bytes (41 kB) copied, 0.00180328 s, 22.7 MB/s 0000000 a a a a a a a a a a a a a a a a 0000016 0002048 a a a a a a a a a a a a a a a a 0002064 0004096 a a a a a a a a a a a a a a a a 0004112 0006144 a a a a a a a a a a a a a a a a 0006160 0008192 a a a a a a a a a a a a a a a a 0008208 0010240 a a a a a a a a a a a a a a a a 0010256 0012288 a a a a a a a a a a a a a a a a 0012304 0014336 a a a a a a a a a a a a a a a a 0014352 0016384 a a a a a a a a a a a a a a a a 0016400 0018432 a a a a a a a a a a a a a a a a 0018448 ------------------------------------------------------ 0000000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0000016 0002048 a a a a a a a a a a a a a a a a 0002064 0004096 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0004112 0006144 a a a a a a a a a a a a a a a a 0006160 0008192 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0008208 0010240 a a a a a a a a a a a a a a a a 0010256 0012288 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0012304 0014336 a a a a a a a a a a a a a a a a 0014352 0016384 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0016400 0018432 a a a a a a a a a a a a a a a a 0018448 ------------------------------------------------------ ######################BLKISZ 4096####################### config/nullb/nullb0 ├── badblocks ├── blocking ├── blocksize ├── cache_size ├── completion_nsec ├── discard ├── home_node ├── hw_queue_depth ├── index ├── irqmode ├── mbps ├── memory_backed ├── power ├── queue_mode ├── size ├── submit_queues ├── use_per_node_hctx ├── write_zeroes ├── zoned ├── zone_nr_conv └── zone_size 0 directories, 21 files ODD:- 16+1 records in 16+1 records out 65537 bytes (66 kB) copied, 0.00140571 s, 46.6 MB/s 0000000 a a a a a a a a a a a a a a a a 0000016 0004096 a a a a a a a a a a a a a a a a 0004112 0008192 a a a a a a a a a a a a a a a a 0008208 0012288 a a a a a a a a a a a a a a a a 0012304 0016384 a a a a a a a a a a a a a a a a 0016400 0020480 a a a a a a a a a a a a a a a a 0020496 0024576 a a a a a a a a a a a a a a a a 0024592 0028672 a a a a a a a a a a a a a a a a 0028688 0032768 a a a a a a a a a a a a a a a a 0032784 0036864 a a a a a a a a a a a a a a a a 0036880 ------------------------------------------------------ 0000000 a a a a a a a a a a a a a a a a 0000016 0004096 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0004112 0008192 a a a a a a a a a a a a a a a a 0008208 0012288 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0012304 0016384 a a a a a a a a a a a a a a a a 0016400 0020480 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0020496 0024576 a a a a a a a a a a a a a a a a 0024592 0028672 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0028688 0032768 a a a a a a a a a a a a a a a a 0032784 0036864 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0036880 ------------------------------------------------------ EVEN:- 16+1 records in 16+1 records out 65537 bytes (66 kB) copied, 0.00123278 s, 53.2 MB/s 0000000 a a a a a a a a a a a a a a a a 0000016 0004096 a a a a a a a a a a a a a a a a 0004112 0008192 a a a a a a a a a a a a a a a a 0008208 0012288 a a a a a a a a a a a a a a a a 0012304 0016384 a a a a a a a a a a a a a a a a 0016400 0020480 a a a a a a a a a a a a a a a a 0020496 0024576 a a a a a a a a a a a a a a a a 0024592 0028672 a a a a a a a a a a a a a a a a 0028688 0032768 a a a a a a a a a a a a a a a a 0032784 0036864 a a a a a a a a a a a a a a a a 0036880 ------------------------------------------------------ 0000000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0000016 0004096 a a a a a a a a a a a a a a a a 0004112 0008192 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0008208 0012288 a a a a a a a a a a a a a a a a 0012304 0016384 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0016400 0020480 a a a a a a a a a a a a a a a a 0020496 0024576 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0024592 0028672 a a a a a a a a a a a a a a a a 0028688 0032768 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0032784 0036864 a a a a a a a a a a a a a a a a 0036880 ------------------------------------------------------ -- 2.17.0