Thread (10 messages) 10 messages, 2 authors, 2020-11-11
STALE2054d
Revisions (4)
  1. v1 current
  2. v2 [diff vs current]
  3. v3 [diff vs current]
  4. v4 [diff vs current]

[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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help