block/blk-settings.c | 60 ++++++++++++++++++++++++++---------------- drivers/md/dm-stripe.c | 1 + drivers/md/raid0.c | 1 + drivers/md/raid10.c | 1 + 4 files changed, 40 insertions(+), 23 deletions(-)
This value in io_min is used to configure any atomic write limit for the stacked device. The idea is that the atomic write unit max is a power-of-2 factor of the stripe size, and the stripe size is available in io_min. Using io_min causes issues, as: a. it may be mutated b. the check for io_min being set for determining if we are dealing with a striped device is hard to get right, as reported in [0]. This series now sets chunk_sectors limit to share stripe size. [0] https://lore.kernel.org/linux-block/888f3b1d-7817-4007-b3b3-1a2ea04df771@linux.ibm.com/T/#mecca17129f72811137d3c2f1e477634e77f06781 Based on v6.16-rc2 Differences to RFC: - sanitize chunk_sectors for atomic write limits - set chunk_sectors in stripe_io_hints() John Garry (5): block: sanitize chunk_sectors for atomic write limits md/raid0: set chunk_sectors limit md/raid10: set chunk_sectors limit dm-stripe: limit chunk_sectors to the stripe size block: use chunk_sectors when evaluating stacked atomic write limits block/blk-settings.c | 60 ++++++++++++++++++++++++++---------------- drivers/md/dm-stripe.c | 1 + drivers/md/raid0.c | 1 + drivers/md/raid10.c | 1 + 4 files changed, 40 insertions(+), 23 deletions(-) -- 2.31.1
On 6/18/25 2:07 PM, John Garry wrote: > This value in io_min is used to configure any atomic write limit for the > stacked device. The idea is that the atomic write unit max is a > power-of-2 factor of the stripe size, and the stripe size is available > in io_min. > > Using io_min causes issues, as: > a. it may be mutated > b. the check for io_min being set for determining if we are dealing with > a striped device is hard to get right, as reported in [0]. > > This series now sets chunk_sectors limit to share stripe size. > > [0] https://lore.kernel.org/linux-block/888f3b1d-7817-4007-b3b3-1a2ea04df771@linux.ibm.com/T/#mecca17129f72811137d3c2f1e477634e77f06781 > > Based on v6.16-rc2 I have validated this patchset using an NVMe disk supporting atomic write and native NVMe multipath. I have also validated dm-stripe and raid configuration. Overall the patchset looks good to me and fixes the issue I posted[1] earlier with my NVMe disk. [1]: https://lore.kernel.org/linux-block/888f3b1d-7817-4007-b3b3-1a2ea04df771@linux.ibm.com/T/#mecca17129f72811137d3c2f1e477634e77f06781 Thanks, --Nilay
On 18/06/2025 09:37, John Garry wrote: > This value in io_min is used to configure any atomic write limit for the > stacked device. The idea is that the atomic write unit max is a > power-of-2 factor of the stripe size, and the stripe size is available > in io_min. > > Using io_min causes issues, as: > a. it may be mutated > b. the check for io_min being set for determining if we are dealing with > a striped device is hard to get right, as reported in [0]. > > This series now sets chunk_sectors limit to share stripe size. Any more comments here? It would be good to have the md/raid0 and md/raid10 changes checked by the md maintainers. Thanks > > [0] https://lore.kernel.org/linux-block/888f3b1d-7817-4007-b3b3-1a2ea04df771@linux.ibm.com/T/#mecca17129f72811137d3c2f1e477634e77f06781 > > Based on v6.16-rc2 > > Differences to RFC: > - sanitize chunk_sectors for atomic write limits > - set chunk_sectors in stripe_io_hints() > > John Garry (5): > block: sanitize chunk_sectors for atomic write limits > md/raid0: set chunk_sectors limit > md/raid10: set chunk_sectors limit > dm-stripe: limit chunk_sectors to the stripe size > block: use chunk_sectors when evaluating stacked atomic write limits > > block/blk-settings.c | 60 ++++++++++++++++++++++++++---------------- > drivers/md/dm-stripe.c | 1 + > drivers/md/raid0.c | 1 + > drivers/md/raid10.c | 1 + > 4 files changed, 40 insertions(+), 23 deletions(-) >
On 26/06/2025 10:36, John Garry wrote: > On 18/06/2025 09:37, John Garry wrote: Hi Jens, Could you kindly consider picking up this series via the block tree? I was hoping for a maintainer ack on the md raid0/1/10 stuff, but it's quite a straightforward change there. Cheers, John >> This value in io_min is used to configure any atomic write limit for the >> stacked device. The idea is that the atomic write unit max is a >> power-of-2 factor of the stripe size, and the stripe size is available >> in io_min. >> >> Using io_min causes issues, as: >> a. it may be mutated >> b. the check for io_min being set for determining if we are dealing with >> a striped device is hard to get right, as reported in [0]. >> >> This series now sets chunk_sectors limit to share stripe size. > > Any more comments here? It would be good to have the md/raid0 and md/ > raid10 changes checked by the md maintainers. > > Thanks > >> >> [0] https://urldefense.com/v3/__https://lore.kernel.org/linux- >> block/888f3b1d-7817-4007-b3b3-1a2ea04df771@linux.ibm.com/T/ >> *mecca17129f72811137d3c2f1e477634e77f06781__;Iw!!ACWV5N9M2RV99hQ! >> I8diqGp3zAZO162eEpQ1SuUsrvAMTWzhbHUSxxn23h3TLcRRTAs3LUDanOeWiK2osXVfFD0HHw4PioWzfd6MhbOnyw$ >> Based on v6.16-rc2 >> >> Differences to RFC: >> - sanitize chunk_sectors for atomic write limits >> - set chunk_sectors in stripe_io_hints() >> >> John Garry (5): >> block: sanitize chunk_sectors for atomic write limits >> md/raid0: set chunk_sectors limit >> md/raid10: set chunk_sectors limit >> dm-stripe: limit chunk_sectors to the stripe size >> block: use chunk_sectors when evaluating stacked atomic write limits >> >> block/blk-settings.c | 60 ++++++++++++++++++++++++++---------------- >> drivers/md/dm-stripe.c | 1 + >> drivers/md/raid0.c | 1 + >> drivers/md/raid10.c | 1 + >> 4 files changed, 40 insertions(+), 23 deletions(-)
© 2016 - 2025 Red Hat, Inc.