Page MenuHomeFreeBSD

cxgbe: Allow parse_pkt to internally queue a packet.
ClosedPublic

Authored by jhb on Feb 14 2023, 12:21 AM.
Tags
None
Referenced Files
F82194830: D38577.id117164.diff
Fri, Apr 26, 8:47 AM
F82194803: D38577.id117495.diff
Fri, Apr 26, 8:47 AM
F82194783: D38577.id.diff
Fri, Apr 26, 8:47 AM
F82160174: D38577.diff
Fri, Apr 26, 1:40 AM
F82158473: D38577.diff
Fri, Apr 26, 1:15 AM
Unknown Object (File)
Dec 12 2023, 3:50 PM
Unknown Object (File)
Aug 7 2023, 1:45 PM
Unknown Object (File)
Aug 7 2023, 1:45 PM
Subscribers

Details

Summary

If parse_pkt returns EINPROGRESS, return from cxgbe_transmit
without queueing the packet in a txq. Use this to move the call
to ethofld_transmit for packet pacing into parse_pkt.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

np added inline comments.
sys/dev/cxgbe/t4_main.c
3063–3070

Should we get rid of the __predict_false if EINPROGRESS can commonly occur on the fast path for tx?

This revision is now accepted and ready to land.Feb 16 2023, 5:33 PM
sys/dev/cxgbe/t4_main.c
3063–3070

Hmmm, it depends on what we want to optimize for. Plain NIC traffic will still take the rc == 0 case. Also, for the EINPROGRESS case, all the work has already been done in parse_pkt and we are just trying to return after possibly draining the mp_ring, so I think that's still less important to optimize for vs getting down to the fast path for plain TX.