[dm-devel] [PATCH 0/3] fix direct io errors on dm-crypt
Mikulas Patocka
mpatocka at redhat.com
Thu Nov 3 16:33:19 UTC 2022
Hi
The patchset seems OK - but dm-integrity also has a limitation that the
bio vectors must be aligned on logical block size.
dm-writecache and dm-verity seem to handle unaligned bioset, but you
should check them anyway.
I'm not sure about dm-log-writes.
Mikulas
On Thu, 3 Nov 2022, Keith Busch 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 requires 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.
>
> There are two parts to fixing this:
>
> First, the attribute needs to be moved to the queue_limit so that it
> can properly stack with device mappers.
>
> Second, dm-crypt provides its minimum required limit to match the
> logical block size.
>
> Keith Busch (3):
> block: make dma_alignment a stacking queue_limit
> dm-crypt: provide dma_alignment limit in io_hints
> block: make blk_set_default_limits() private
>
> block/blk-core.c | 1 -
> block/blk-settings.c | 9 +++++----
> block/blk.h | 1 +
> drivers/md/dm-crypt.c | 1 +
> include/linux/blkdev.h | 16 ++++++++--------
> 5 files changed, 15 insertions(+), 13 deletions(-)
>
> --
> 2.30.2
>
More information about the dm-devel
mailing list