aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/cdns3/cdns3-debug.h
diff options
context:
space:
mode:
authorJoshua Washington <[email protected]>2025-07-17 15:28:38 +0000
committerPaolo Abeni <[email protected]>2025-07-22 09:35:49 +0000
commit2236836eab2629978e9777dbde83161f9c7b450b (patch)
tree7fa2363530d44dfc947556f3cf45be824332415f /drivers/usb/cdns3/cdns3-debug.h
parentgve: keep registry of zc xsk pools in netdev_priv (diff)
downloadkernel-2236836eab2629978e9777dbde83161f9c7b450b.tar.gz
kernel-2236836eab2629978e9777dbde83161f9c7b450b.zip
gve: implement DQO TX datapath for AF_XDP zero-copy
In the descriptor clean path, a number of changes need to be made to accommodate out of order completions and double completions. The XSK stack can only handle completions being processed in order, as a single counter is incremented in xsk_tx_completed to sigify how many XSK descriptors have been completed. Because completions can come back out of order in DQ, a separate queue of XSK descriptors must be maintained. This queue keeps the pending packets in the order that they were written so that the descriptors can be counted in xsk_tx_completed in the same order. For double completions, a new pending packet state and type are introduced. The new type, GVE_TX_PENDING_PACKET_DQO_XSK, plays an anlogous role to pre-existing _SKB and _XDP_FRAME pending packet types for XSK descriptors. The new state, GVE_PACKET_STATE_XSK_COMPLETE, represents packets for which no more completions are expected. This includes packets which have received a packet completion or reinjection completion, as well as packets whose reinjection completion timer have timed out. At this point, such packets can be counted as part of xsk_tx_completed() and freed. Reviewed-by: Willem de Bruijn <[email protected]> Signed-off-by: Praveen Kaligineedi <[email protected]> Signed-off-by: Joshua Washington <[email protected]> Signed-off-by: Jeroen de Borst <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Paolo Abeni <[email protected]>
Diffstat (limited to 'drivers/usb/cdns3/cdns3-debug.h')
0 files changed, 0 insertions, 0 deletions