Page MenuHomeFreeBSD

Improve TX path of the VNIC driver
ClosedPublic

Authored by zbb on Mar 3 2016, 5:31 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Apr 29, 12:09 AM
Unknown Object (File)
Wed, Apr 24, 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
Unknown Object (File)
Feb 13 2024, 4:51 AM
Unknown Object (File)
Dec 19 2023, 10:29 PM
Unknown Object (File)
Nov 9 2023, 6:10 AM
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

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

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.