]> git.ipfire.org Git - thirdparty/linux.git/commit
block: don't merge different kinds of P2P transfers in a single bio
authorChristoph Hellwig <hch@lst.de>
Wed, 25 Jun 2025 11:34:58 +0000 (13:34 +0200)
committerJens Axboe <axboe@kernel.dk>
Mon, 30 Jun 2025 21:50:32 +0000 (15:50 -0600)
commit38446014648c9f7b2843f87517c8f2b73906bb40
tree9b2a6eea78ce6da1abcbe45ca53c0a88afdcc596
parent409f9287dab3b53bffe8d28d883a529028aa6a42
block: don't merge different kinds of P2P transfers in a single bio

To get out of the DMA mapping helpers having to check every segment for
it's P2P status, ensure that bios either contain P2P transfers or non-P2P
transfers, and that a P2P bio only contains ranges from a single device.

This means we do the page zone access in the bio add path where it should
be still page hot, and will only have do the fairly expensive P2P topology
lookup once per bio down in the DMA mapping path, and only for already
marked bios.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Link: https://lore.kernel.org/r/20250625113531.522027-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bio-integrity.c
block/bio.c
include/linux/blk_types.h