[PATCH 0/6] null_blk fixes, improvements and cleanup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux