mbox series

[v4,0/5] RAID 0/1/10 atomic write support

Message ID 20241112124256.4106435-1-john.g.garry@oracle.com (mailing list archive)
Headers show
Series RAID 0/1/10 atomic write support | expand

Message

John Garry Nov. 12, 2024, 12:42 p.m. UTC
This series introduces atomic write support for software RAID 0/1/10.

The main changes are to ensure that we can calculate the stacked device
request_queue limits appropriately for atomic writes. Fundamentally, if
some bottom does not support atomic writes, then atomic writes are not
supported for the top device. Furthermore, the atomic writes limits are
the lowest common supported limits from all bottom devices.

Flag BLK_FEAT_ATOMIC_WRITES_STACKED is introduced to enable atomic writes
for stacked devices selectively. This ensures that we can analyze and test
atomic writes support per individual md/dm personality (prior to
enabling).

Based on 0b4ace9da58d (for-6.13/block) nvme-multipath: don't bother
clearing max_hw_zone_append_sectors

Differences to v3:
- Add RB tags from Christoph and Kuai (thanks!)
- Rebase

Differences to v2:
- Refactor blk_stack_atomic_writes_limits() (Christoph)
- Relocate RAID 1/10 BB check (Kuai)
- Add RB tag from Christoph (Thanks!)
- Set REQ_ATOMIC for RAID 1/10

John Garry (5):
  block: Add extra checks in blk_validate_atomic_write_limits()
  block: Support atomic writes limits for stacked devices
  md/raid0: Atomic write support
  md/raid1: Atomic write support
  md/raid10: Atomic write support

 block/blk-settings.c   | 132 +++++++++++++++++++++++++++++++++++++++++
 drivers/md/raid0.c     |   1 +
 drivers/md/raid1.c     |  14 ++++-
 drivers/md/raid10.c    |  14 ++++-
 include/linux/blkdev.h |   4 ++
 5 files changed, 161 insertions(+), 4 deletions(-)

Comments

John Garry Nov. 14, 2024, 8:22 a.m. UTC | #1
On 12/11/2024 12:42, John Garry wrote:

Hi Song, Kuai,

Can you check the remaining 2x patches in this series when you get a chance?

I was hoping that I could get this queued for 6.13 via the block tree.

Thanks,
John

Ps. I do appreciate that I am pinging on this quite early, but those 
patches mentioned have not changed since the last revision.

> This series introduces atomic write support for software RAID 0/1/10.
> 
> The main changes are to ensure that we can calculate the stacked device
> request_queue limits appropriately for atomic writes. Fundamentally, if
> some bottom does not support atomic writes, then atomic writes are not
> supported for the top device. Furthermore, the atomic writes limits are
> the lowest common supported limits from all bottom devices.
> 
> Flag BLK_FEAT_ATOMIC_WRITES_STACKED is introduced to enable atomic writes
> for stacked devices selectively. This ensures that we can analyze and test
> atomic writes support per individual md/dm personality (prior to
> enabling).
> 
> Based on 0b4ace9da58d (for-6.13/block) nvme-multipath: don't bother
> clearing max_hw_zone_append_sectors
> 
> Differences to v3:
> - Add RB tags from Christoph and Kuai (thanks!)
> - Rebase
> 
> Differences to v2:
> - Refactor blk_stack_atomic_writes_limits() (Christoph)
> - Relocate RAID 1/10 BB check (Kuai)
> - Add RB tag from Christoph (Thanks!)
> - Set REQ_ATOMIC for RAID 1/10
> 
> John Garry (5):
>    block: Add extra checks in blk_validate_atomic_write_limits()
>    block: Support atomic writes limits for stacked devices
>    md/raid0: Atomic write support
>    md/raid1: Atomic write support
>    md/raid10: Atomic write support
> 
>   block/blk-settings.c   | 132 +++++++++++++++++++++++++++++++++++++++++
>   drivers/md/raid0.c     |   1 +
>   drivers/md/raid1.c     |  14 ++++-
>   drivers/md/raid10.c    |  14 ++++-
>   include/linux/blkdev.h |   4 ++
>   5 files changed, 161 insertions(+), 4 deletions(-)
>