Lines Matching +full:use +full:- +full:cases

1 .. SPDX-License-Identifier: GPL-2.0
4 PCI Peer-to-Peer DMA Support
9 called Peer-to-Peer (or P2P). However, there are a number of issues that
12 For PCIe the routing of Transaction Layer Packets (TLPs) is well-defined up
16 the PCIe topology and always permit P2P in these well-defined cases.
24 allow list to allow detecting known-good HW, in which case P2P between any
28 drivers to be co-operating inside the kernel. The providing driver has to convey
40 drivers using this option will wrap their MMIO memory in DMABUF and use DMABUF
49 using the MMIO. This option works with O_DIRECT flows, in some cases, if the
51 FOLL_PCI_P2PDMA. The use of FOLL_LONGTERM is prevented. As this relies on pgmap
62 * Provider - A driver which provides or publishes P2P resources like
64 * Client - A driver which makes use of a resource by setting up a
66 * Orchestrator - A driver which orchestrates the flow of data between
69 In many cases there could be overlap between these three types (i.e.,
77 to be used directly (client) and it can also make use of the CMB as
88 then the NVMe Target could use the RNIC's memory instead of the CMB
89 in cases where the NVMe cards in use do not have CMB support.
93 ----------------
101 any orchestrator drivers to find and use the memory. When marked in
110 --------------
112 A client driver only has to use the mapping API :c:func:`dma_map_sg()`
118 --------------------
123 block device and the RNIC in use. If the orchestrator has access to
124 a specific P2P provider to use it may check compatibility using
130 truly random). This function returns the PCI device to use for the provider
134 Once a provider is selected, the orchestrator can then use
138 allocating scatter-gather lists with P2P memory.
141 -------------------
158 DMABUF provides an alternative to the above struct page-based
167 is used to determine the mapping type. The phys_addr_t-based DMA API is used to
181 .. kernel-doc:: drivers/pci/p2pdma.c