Page MenuHomeFreeBSD

Improve TX path of the VNIC driver
ClosedPublic

Authored by zbb on Mar 3 2016, 5:31 PM.
Tags
None
Referenced Files
F84612604: D5534.diff
Sun, May 26, 6:35 AM
Unknown Object (File)
Tue, May 14, 9:48 AM
Unknown Object (File)
Fri, May 10, 9:15 PM
Unknown Object (File)
Mon, Apr 29, 12:09 AM
Unknown Object (File)
Apr 24 2024, 7:07 AM
Unknown Object (File)
Mar 4 2024, 8:25 AM
Unknown Object (File)
Feb 18 2024, 3:11 AM
Unknown Object (File)
Feb 17 2024, 7:30 PM
Subscribers

Details

Summary
  • Avoid memory leak when nicvf_tx_mbuf_locked() fails
  • Introduce nicvf_xmit_locked() routine that uses drbr_peek(), drbr_advance() or drbr_putback() for a specific ifnet. This gives more clear and efficient design as well as prevents from dropping mbufs that where not sent due to temporary lack of descriptors.
  • Add missing ETHER_BPF_MTAP() hook

Pointed out by: yongari

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

zbb retitled this revision from to Improve TX path of the VNIC driver.
zbb updated this object.
zbb edited the test plan for this revision. (Show Details)
zbb added reviewers: wma, imp, andrew.
zbb set the repository for this revision to rS FreeBSD src repository - subversion.
zbb added a subscriber: arm64.

My only concern is using of drbr_advance, drbr_peek. Previous drbr_dequeue is well tested in our LAB. If you run overnight multithreaded bidirectional iperf3, then I'm fine with this change. I just don't trust anything from buf_ring.h on ARM...

zbb edited edge metadata.
zbb removed rS FreeBSD src repository - subversion as the repository for this revision.
wma edited edge metadata.
This revision is now accepted and ready to land.Mar 31 2016, 12:51 PM
This revision was automatically updated to reflect the committed changes.