All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/11] dm: Improve zoned block device support
@ 2021-05-20  4:22 ` Damien Le Moal
  0 siblings, 0 replies; 52+ messages in thread
From: Damien Le Moal @ 2021-05-20  4:22 UTC (permalink / raw)
  To: dm-devel, Mike Snitzer, linux-block, Jens Axboe

This series improve device mapper support for zoned block devices and
of targets exposing a zoned device.

The first patch improve support for user requests to reset all zones of
the target device. With the fix, such operation behave similarly to
physical block devices implementation based on the single zone reset
command with the ALL bit set.

The following 2 patches are preparatory block layer patches.

Patch 4 and 5 are 2 small fixes to DM core zoned block device support.

Patch 6 reorganizes DM core code, moving conditionally defined zoned
block device code into the new dm-zone.c file. This avoids sprinkly DM
with zone related code defined under an #ifdef CONFIG_BLK_DEV_ZONED.

Patch 7 improves DM zone report helper functions for target drivers.

Patch 8 fixes a potential problem with BIO requeue on zoned target.

Finally, patch 9 to 11 implement zone append emulation using regular
writes for target drivers that cannot natively support this BIO type.
The only target currently needing this emulation is dm-crypt. With this
change, a zoned dm-crypt device behaves exactly like a regular zoned
block device, correctly executing user zone append BIOs.

This series passes the following tests:
1) zonefs tests on top of dm-crypt with a zoned nullblk device
2) zonefs tests on top of dm-crypt+dm-linear with an SMR HDD
3) btrfs fstests on top of dm-crypt with zoned nullblk devices.

Comments are as always welcome.

Changes from v1:
* Use Christoph proposed approach for patch 1 (split reset all
  processing into different functions)
* Changed helpers introduced in patch 2 to remove the request_queue
  argument
* Improve patch 3 commit message as suggested by Christoph (explaining
  that the flag is a special case that cannot use a REQ_XXX flag)
* Changed DMWARN() into DMDEBUG in patch 11 as suggested by Milan
* Added reviewed-by tags

Damien Le Moal (11):
  block: improve handling of all zones reset operation
  block: introduce bio zone helpers
  block: introduce BIO_ZONE_WRITE_LOCKED bio flag
  dm: Fix dm_accept_partial_bio()
  dm: cleanup device_area_is_invalid()
  dm: move zone related code to dm-zone.c
  dm: Introduce dm_report_zones()
  dm: Forbid requeue of writes to zones
  dm: rearrange core declarations
  dm: introduce zone append emulation
  dm crypt: Fix zoned block device support

 block/blk-zoned.c             | 117 ++++--
 drivers/md/Makefile           |   4 +
 drivers/md/dm-core.h          |  66 ++++
 drivers/md/dm-crypt.c         |  31 +-
 drivers/md/dm-flakey.c        |   7 +-
 drivers/md/dm-linear.c        |   7 +-
 drivers/md/dm-table.c         |  21 +-
 drivers/md/dm-zone.c          | 689 ++++++++++++++++++++++++++++++++++
 drivers/md/dm.c               | 203 +++-------
 drivers/md/dm.h               |  32 +-
 include/linux/blk_types.h     |   1 +
 include/linux/blkdev.h        |  12 +
 include/linux/device-mapper.h |   9 +-
 13 files changed, 992 insertions(+), 207 deletions(-)
 create mode 100644 drivers/md/dm-zone.c

-- 
2.31.1


^ permalink raw reply	[flat|nested] 52+ messages in thread

end of thread, other threads:[~2021-05-20  7:07 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-20  4:22 [PATCH v2 00/11] dm: Improve zoned block device support Damien Le Moal
2021-05-20  4:22 ` [dm-devel] " Damien Le Moal
2021-05-20  4:22 ` [PATCH v2 01/11] block: improve handling of all zones reset operation Damien Le Moal
2021-05-20  4:22   ` [dm-devel] " Damien Le Moal
2021-05-20  5:49   ` Hannes Reinecke
2021-05-20  5:49     ` [dm-devel] " Hannes Reinecke
2021-05-20  4:22 ` [PATCH v2 02/11] block: introduce bio zone helpers Damien Le Moal
2021-05-20  4:22   ` [dm-devel] " Damien Le Moal
2021-05-20  5:50   ` Hannes Reinecke
2021-05-20  5:50     ` [dm-devel] " Hannes Reinecke
2021-05-20  4:22 ` [PATCH v2 03/11] block: introduce BIO_ZONE_WRITE_LOCKED bio flag Damien Le Moal
2021-05-20  4:22   ` [dm-devel] " Damien Le Moal
2021-05-20  5:52   ` Hannes Reinecke
2021-05-20  5:52     ` [dm-devel] " Hannes Reinecke
2021-05-20  4:22 ` [PATCH v2 04/11] dm: Fix dm_accept_partial_bio() Damien Le Moal
2021-05-20  4:22   ` [dm-devel] " Damien Le Moal
2021-05-20  5:53   ` Hannes Reinecke
2021-05-20  5:53     ` [dm-devel] " Hannes Reinecke
2021-05-20  4:22 ` [PATCH v2 05/11] dm: cleanup device_area_is_invalid() Damien Le Moal
2021-05-20  4:22   ` [dm-devel] " Damien Le Moal
2021-05-20  5:53   ` Hannes Reinecke
2021-05-20  5:53     ` [dm-devel] " Hannes Reinecke
2021-05-20  4:22 ` [PATCH v2 06/11] dm: move zone related code to dm-zone.c Damien Le Moal
2021-05-20  4:22   ` [dm-devel] " Damien Le Moal
2021-05-20  5:54   ` Hannes Reinecke
2021-05-20  5:54     ` [dm-devel] " Hannes Reinecke
2021-05-20  4:22 ` [PATCH v2 07/11] dm: Introduce dm_report_zones() Damien Le Moal
2021-05-20  4:22   ` [dm-devel] " Damien Le Moal
2021-05-20  5:56   ` Hannes Reinecke
2021-05-20  5:56     ` [dm-devel] " Hannes Reinecke
2021-05-20  4:22 ` [PATCH v2 08/11] dm: Forbid requeue of writes to zones Damien Le Moal
2021-05-20  4:22   ` [dm-devel] " Damien Le Moal
2021-05-20  5:57   ` Hannes Reinecke
2021-05-20  5:57     ` [dm-devel] " Hannes Reinecke
2021-05-20  4:22 ` [PATCH v2 09/11] dm: rearrange core declarations Damien Le Moal
2021-05-20  4:22   ` [dm-devel] " Damien Le Moal
2021-05-20  5:59   ` Hannes Reinecke
2021-05-20  5:59     ` [dm-devel] " Hannes Reinecke
2021-05-20  4:22 ` [PATCH v2 10/11] dm: introduce zone append emulation Damien Le Moal
2021-05-20  4:22   ` [dm-devel] " Damien Le Moal
2021-05-20  6:10   ` Hannes Reinecke
2021-05-20  6:10     ` [dm-devel] " Hannes Reinecke
2021-05-20  6:25     ` Damien Le Moal
2021-05-20  6:25       ` [dm-devel] " Damien Le Moal
2021-05-20  6:47       ` Hannes Reinecke
2021-05-20  6:47         ` [dm-devel] " Hannes Reinecke
2021-05-20  6:57         ` Damien Le Moal
2021-05-20  6:57           ` [dm-devel] " Damien Le Moal
2021-05-20  4:22 ` [PATCH v2 11/11] dm crypt: Fix zoned block device support Damien Le Moal
2021-05-20  4:22   ` [dm-devel] " Damien Le Moal
2021-05-20  6:11   ` Hannes Reinecke
2021-05-20  6:11     ` [dm-devel] " Hannes Reinecke

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.