[dm-devel] [PATCHv2 0/5] fix direct io device mapper errors
Mike Snitzer
snitzer at redhat.com
Fri Nov 11 18:07:05 UTC 2022
On Thu, Nov 10 2022 at 1:44P -0500,
Keith Busch <kbusch at meta.com> wrote:
> From: Keith Busch <kbusch at kernel.org>
>
> The 6.0 kernel made some changes to the direct io interface to allow
> offsets in user addresses. This based on the hardware's capabilities
> reported in the request_queue's dma_alignment attribute.
>
> dm-crypt, -log-writes and -integrity require direct io be aligned to the
> block size. Since it was only ever using the default 511 dma mask, this
> requirement may fail if formatted to something larger, like 4k, which
> will result in unexpected behavior with direct-io.
>
> Changes since v1: Added the same fix for -integrity and -log-writes
>
> The first three were reported successfully tested by Dmitrii Tcvetkov,
> but I don't have an official Tested-by: tag.
>
> https://lore.kernel.org/linux-block/20221103194140.06ce3d36@xps.demsh.org/T/#mba1d0b13374541cdad3b669ec4257a11301d1860
>
> Keitio errors on Busch (5):
> block: make dma_alignment a stacking queue_limit
> dm-crypt: provide dma_alignment limit in io_hints
> block: make blk_set_default_limits() private
> dm-integrity: set dma_alignment limit in io_hints
> dm-log-writes: set dma_alignment limit in io_hints
>
> block/blk-core.c | 1 -
> block/blk-settings.c | 9 +++++----
> block/blk.h | 1 +
> drivers/md/dm-crypt.c | 1 +
> drivers/md/dm-integrity.c | 1 +
> drivers/md/dm-log-writes.c | 1 +
> include/linux/blkdev.h | 16 ++++++++--------
> 7 files changed, 17 insertions(+), 13 deletions(-)
>
> --
> 2.30.2
>
There are other DM targets that override logical_block_size in their
.io_hints hook (writecache, ebs, zoned). Have you reasoned through why
those do _not_ need updating too?
Is there any risk of just introducing a finalization method in block
core (that DM's .io_hints would call) that would ensure limits that
are a funtion of another are always in sync? Would avoid whack-a-mole
issues in the future.
Thanks,
Mike
More information about the dm-devel
mailing list