Page MenuHomeFreeBSD

Add RX OOO completion feature
ClosedPublic

Authored by mw on Oct 31 2017, 1:32 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Apr 23, 3:52 AM
Unknown Object (File)
Sat, Apr 6, 11:38 PM
Unknown Object (File)
Sat, Apr 6, 6:13 PM
Unknown Object (File)
Mar 3 2024, 8:12 PM
Unknown Object (File)
Feb 29 2024, 10:30 PM
Unknown Object (File)
Feb 22 2024, 12:21 AM
Unknown Object (File)
Jan 3 2024, 10:57 AM
Unknown Object (File)
Jan 2 2024, 3:34 AM

Details

Summary

The RX out of order completion feature, allows to complete RX
descriptors out of order, by keeping trace of all free descriptors in
the separate array.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Remove checking for NULL after calling malloc with M_WAITOK flag

Curious as to how this was tested since I assume 'out of order RX descriptors' condition is not common.

sys/dev/ena/ena.c
1512 ↗(On Diff #34669)

nit - suggest removing this 'goto' and moving lines 1534 and 1536 here. It makes it easier to read.

1622 ↗(On Diff #34669)

Shouldn't this be rx_ring->free_rx_ids?

mk_semihalf.com marked 2 inline comments as done.
  • Expand goto if retrieving RX mbuf fails
  • Fix error handling routine by assigning value to free_rx_ids instead of tx

Curious as to how this was tested since I assume 'out of order RX descriptors' condition is not common.

Yes, it is uncommon but it can be achieved with the packet generator

sys/dev/ena/ena.c
1622 ↗(On Diff #34669)

Good catch, thanks!

This revision is now accepted and ready to land.Nov 8 2017, 5:33 PM
mw edited reviewers, added: mk_semihalf.com; removed: mw.
This revision was automatically updated to reflect the committed changes.