[PATCH V3 0/2] md/nvme: Enable PCI P2PDMA support for RAID0 and NVMe Multipath
Pranjal Shrivastava
praan at google.com
Mon May 4 14:25:41 PDT 2026
On Thu, Apr 16, 2026 at 02:26:30PM -0700, Chaitanya Kulkarni wrote:
> Hi,
>
> This patch series extends PCI peer-to-peer DMA (P2PDMA) support to enable
> direct data transfers between PCIe devices through RAID and NVMe multipath
> block layers.
>
> Current Linux kernel P2PDMA infrastructure supports direct peer-to-peer
> transfers, but this support is not propagated through certain storage
> stacks like MD RAID and NVMe multipath. This adds two patches for
> MD RAID 0/1/10 and NVMe to propogate P2PDMA support through the
> storage stack.
>
> All four test scenarios demonstrate that P2PDMA capabilities are correctly
> propagated through both the MD RAID layer (patch 1/2) and NVMe multipath
> layer (patch 2/2). Direct peer-to-peer transfers complete successfully with
> full data integrity verification, confirming that:
>
> 1. RAID devices properly inherit P2PDMA capability from member devices
> 2. NVMe multipath devices correctly expose P2PDMA support
> 3. P2P memory buffers can be used for transfers involving both types
> 4. Data integrity is maintained across all transfer combinations
>
> I've added the patch specific tests and blktest log as well at the end.
>
> Repo:-
>
> git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux.git
>
> Branch HEAD:-
>
> commit 88a57e15861997dd6fa98154ad087f7831bbead1 (origin/for-next)
> Merge: 81a0a2e4e535 36446de0c30c
> Author: Jens Axboe <axboe at kernel.dk>
> Date: Fri Apr 10 07:02:42 2026 -0600
>
> Merge branch 'for-7.1/block' into for-next
>
> * for-7.1/block:
> ublk: fix tautological comparison warning in ublk_ctrl_reg_buf
> -ck
>
> Changes from V2:-
>
> 1. Unconditionally set the BLK_FEAT_PCI_P2PDMA for md and nvme multipath.
> (Christoph)
> 2. Add a prep patch to diable BLK_FEAT_PCI_P2PDMA in the blk_stack_limit().
> (christoph)
>
> Changes from V1:-
> - Update patch 1 to explicitly support MD RAID 0/1/10.
> - Fix signoff chain order for patch 2.
> - Clear BLK_FEAT_PCI_P2PDMA in nvme_mpath_add_disk() when a newly
> added path does not support it, to handle multipath across different
> transports.
> - Add nvme multipath test log for mixed transport TCP and PCIe.
>
> Chaitanya Kulkarni (1):
> block: clear BLK_FEAT_PCI_P2PDMA in blk_stack_limits() for
> non-supporting devices
>
> Kiran Kumar Modukuri (2):
> md: propagate BLK_FEAT_PCI_P2PDMA from member devices to RAID device
> nvme-multipath: enable PCI P2PDMA for multipath devices
>
> block/blk-settings.c | 2 ++
> drivers/md/raid0.c | 1 +
> drivers/md/raid1.c | 1 +
> drivers/md/raid10.c | 1 +
> drivers/nvme/host/multipath.c | 2 +-
> 5 files changed, 6 insertions(+), 1 deletion(-)
>
Tested with NVMe-oF (RDMA).
Tested=by: Pranjal Shrivastava <praan at google.com>
Thanks,
Praan
More information about the Linux-nvme
mailing list