Lines Matching +full:in +full:- +full:between

1 .. SPDX-License-Identifier: GPL-2.0
4 PCI Peer-to-Peer DMA Support
8 between two devices on the bus. This type of transaction is henceforth
9 called Peer-to-Peer (or P2P). However, there are a number of issues that
10 make P2P transactions tricky to do in a perfectly safe way.
13 transactions between hierarchy domains, and in PCIe, each Root Port
18 same PCI bridge, as such devices are all in the same PCI hierarchy
21 between hierarchies.
23 The second issue is that to make use of existing interfaces in Linux,
33 In a given P2P implementation there may be three or more different
34 types of kernel drivers in play:
36 * Provider - A driver which provides or publishes P2P resources like
38 * Client - A driver which makes use of a resource by setting up a
40 * Orchestrator - A driver which orchestrates the flow of data between
43 In many cases there could be overlap between these three types (i.e.,
46 For example, in the NVMe Target Copy Offload implementation:
49 in that it exposes any CMB (Controller Memory Buffer) as a P2P memory
50 resource (provider), it accepts P2P memory pages as buffers in requests
53 * The RDMA driver is a client in this arrangement so that an RNIC
63 in cases where the NVMe cards in use do not have CMB support.
67 ----------------
75 any orchestrator drivers to find and use the memory. When marked in
78 For the time being this is fairly rudimentary in that all resources
84 --------------
92 --------------------
95 all client devices that will be involved in a given transaction. For
97 block device and the RNIC in use. If the orchestrator has access to
112 allocating scatter-gather lists with P2P memory.
115 -------------------
130 .. kernel-doc:: drivers/pci/p2pdma.c