Lines Matching +full:flow +full:- +full:level
1 .. SPDX-License-Identifier: GPL-2.0
16 -----------
22 - Distributed training, where ML accelerators, such as GPUs on different hosts,
25 - Distributed raw block storage applications transfer large amounts of data with
28 Typically the Device-to-Device data transfers in the network are implemented as
29 the following low-level operations: Device-to-Host copy, Host-to-Host network
30 transfer, and Host-to-Device copy.
32 The flow involving host copies is suboptimal, especially for bulk data transfers,
46 - Alleviate host memory bandwidth pressure, compared to existing
47 network-transfer + device-copy semantics.
49 - Alleviate PCIe bandwidth pressure, by limiting data transfer to the lowest
50 level of the PCIe tree, compared to the traditional path which sends data
55 ---------
58 https://netdevconf.org/0x17/sessions/talk/device-memory-tcp.html
61 [PATCH net-next v24 00/13] Device Memory TCP
62 https://lore.kernel.org/netdev/20240831004313.3713467-1-[email protected]/
70 -------
77 ---------
79 Header split, flow steering, & RSS are required features for devmem TCP.
84 Flow steering & RSS are used to ensure that only flows targeting devmem land on
87 Enable header split & flow steering::
90 ethtool -G eth1 tcp-data-split on
93 # enable flow steering
94 ethtool -K eth1 ntuple on
99 ethtool --set-rxfh-indir eth1 equal 15
123 dmabuf_id = rsp->dmabuf_id;
133 Note that any reasonably well-behaved dmabuf from any exporter should work with
135 this is udmabuf, which wraps user memory (non-devmem) in a dmabuf.
139 ------------
141 The socket must be flow steered to the dmabuf bound RX queue::
143 ethtool -N eth1 flow-type tcp4 ... queue 15
147 --------------
161 if (cm->cmsg_level != SOL_SOCKET ||
162 (cm->cmsg_type != SCM_DEVMEM_DMABUF &&
163 cm->cmsg_type != SCM_DEVMEM_LINEAR))
168 if (cm->cmsg_type == SCM_DEVMEM_DMABUF) {
171 * dmabuf_cmsg->dmabuf_id is the dmabuf the
174 * dmabuf_cmsg->frag_offset is the offset into
177 * dmabuf_cmsg->frag_size is the size of the
180 * dmabuf_cmsg->frag_token is a token used to
185 token.token_start = dmabuf_cmsg->frag_token;
190 if (cm->cmsg_type == SCM_DEVMEM_LINEAR)
193 * dmabuf_cmsg->frag_size is the size of the
202 - SCM_DEVMEM_DMABUF: this indicates the fragment landed in the dmabuf indicated
205 - SCM_DEVMEM_LINEAR: this indicates the fragment landed in the linear buffer.
210 Applications may receive no SO_DEVMEM_* cmsgs. That indicates non-devmem,
215 -------------
229 among the token->token_count across all the tokens. If the user provides more
242 ---------------
247 - Loopback is not functional. Loopback relies on copying the payload, which is
250 - Software checksum calculation fails.
252 - TCP Dump and bpf can't access devmem packet payloads.
271 ncdevmem -s <server IP> -c <client IP> -f eth1 -d 3 -n 0000:06:00.0 -l \
272 -p 5201 -v 7
277 yes $(echo -e \\x01\\x02\\x03\\x04\\x05\\x06) | \
278 tr \\n \\0 | head -c 5G | nc <server IP> 5201 -p 5201