Lines Matching refs:P2P
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.
17 only supports doing P2P when the endpoints involved are all behind the
24 memory that is used for P2P transactions needs to be backed by struct
33 In a given P2P implementation there may be three or more different
36 * Provider - A driver which provides or publishes P2P resources like
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
56 to the P2P memory (CMB) and then to the NVMe device (and vice versa).
61 memory behind it, its driver could add support as a P2P provider and
70 as a P2P DMA resource using :c:func:`pci_p2pdma_add_resource()`.
74 P2P memory using :c:func:`pci_p2pmem_publish()`. This will allow
79 are typically going to be P2P memory. Future work will likely expand
92 :c:func:`is_pci_p2pdma_page()` to determine when to use the P2P mapping
95 given request is P2P memory and map appropriately. It is important to
96 ensure that struct pages that back P2P memory stay out of code that
108 a specific P2P provider to use it may check compatibility using
120 allocate P2P memory from the provider. :c:func:`pci_p2pmem_alloc_sgl()`
122 allocating scatter-gather lists with P2P memory.
132 P2P memory is also technically IO memory but should never have any side
137 P2P DMA Support Library