[PATCH 0/6] null_blk fixes, improvements and cleanup
From: Damien Le Moal <hidden>
Date: 2020-11-09 12:51:47
Jens,
This series provides fixes and improvements for null_blk zoned mode.
The first patch fixes a problem with zone size initialization when the
device capacity is not a multiple of the zone size.
The second patch improves zone locking overall, and especially the
memory backing disabled case by introducing a spinlock array to
implement a per zone lock in place of a global lock. With this patch,
write performance remains mostly unchanged, but read performance with
a multi-queue setup more than double from 1.3 MIOPS to 3.3 MIOPS (4K
random reads to zones with fio zonemode=zbd).
These 2 patches could probably go into the current cycle.
The remaining 4 patches likely belong to the next cycle: patch 3
improves zone implicit close, patch 4 is a small code cleanup in
preparation of patch 5 which allows freeing the memory used by a zone
when the zone is reset with memory backing enabled.
The last patch is another cleanup which moves null_blk driver code into
its own directory under drivers/block/null_blk.
Comments are as always welcome.
Damien Le Moal (6):
null_blk: Fix zone size initialization
null_blk: improve zone locking
null_blk: Improve implicit zone close
null_blk: cleanup discard handling
null_blk: discard zones on reset
null_blk: Move driver into its own directory
drivers/block/Makefile | 7 +-
drivers/block/null_blk/Makefile | 11 +
drivers/block/{ => null_blk}/null_blk.h | 8 +-
drivers/block/{ => null_blk}/null_blk_main.c | 43 ++--
drivers/block/{ => null_blk}/null_blk_trace.c | 0
drivers/block/{ => null_blk}/null_blk_trace.h | 0
drivers/block/{ => null_blk}/null_blk_zoned.c | 234 ++++++++++++------
7 files changed, 196 insertions(+), 107 deletions(-)
create mode 100644 drivers/block/null_blk/Makefile
rename drivers/block/{ => null_blk}/null_blk.h (95%)
rename drivers/block/{ => null_blk}/null_blk_main.c (98%)
rename drivers/block/{ => null_blk}/null_blk_trace.c (100%)
rename drivers/block/{ => null_blk}/null_blk_trace.h (100%)
rename drivers/block/{ => null_blk}/null_blk_zoned.c (78%)
--
2.26.2