[RFC PATCH] nvme: enable PCI P2PDMA support for RDMA transport

Pranjal Shrivastava praan at google.com
Wed Apr 1 10:43:22 PDT 2026


On Wed, Apr 01, 2026 at 04:17:06PM +0200, Christoph Hellwig wrote:
> On Wed, Apr 01, 2026 at 10:34:41AM +0000, Shivaji Kant wrote:
> > Enable BLK_FEAT_PCI_P2PDMA on the NVMe when the underlying
> > RDMA controller supports it.
> > 
> > blk_stack_limits() currently filters out this feature bit because it is
> > absent from BLK_FEAT_INHERIT_MASK. Manually re-assert the capability
> > in nvme_update_ns_info() after the stacking operation.
> 
> This is really two different features/fixes and should be two patches.
> Note that Chaitanya also has an outstanding patch about p2p on multipath,
> so please work with him.
> 

Ack. 
Shivaji, I believe this [1] is the patch Christoph's referring to.

> > Hardware reachability remains enforced by late-stage distance checks
> > during DMA mapping.
> 
> I don't know what this is supposed to mean.  Callers need to check the
> reachability first before submitting P2P I/O.
> 
> > +static bool nvme_rdma_supports_pci_p2pdma(struct nvme_ctrl *ctrl)
> > +{
> > +	struct nvme_rdma_ctrl *r_ctrl = to_rdma_ctrl(ctrl);
> > +	bool supported = false;
> > +
> > +	if (r_ctrl && r_ctrl->device)
> 
> to_rdma_ctrl is a wrapper around container_of, so r_ctrl can't be
> NULL for a non-NULL ctrl.  ->device also should not NULL because it
> is set up before namespaces are probed.
> 
> > +		supported = ib_dma_pci_p2p_dma_supported(r_ctrl->device->dev);
> > +
> > +	dev_dbg(ctrl->device, "PCI P2PDMA support result: %s\n",
> > +			supported ? "PASSED" : "FAILED (HW/Driver restriction)");
> 
> Overly long line, and screaming isn't really something we do in our
> messages.  We also don't do that debug message in PCI, so please just
> drop it.  IF you think this is important enough add a tracepoint in the
> core code in a separate patch.
> 

+1, we should drop the log and add a TP if necessary.

Thanks,
Praan

[1] https://lore.kernel.org/all/20260323234416.46944-3-kch@nvidia.com/



More information about the Linux-nvme mailing list