[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