Page MenuHomeFreeBSD

hyperv/hn: Partly rework transmission path
ClosedPublic

Authored by sepherosa_gmail.com on Jan 18 2016, 5:59 AM.
Tags
None
Referenced Files
Unknown Object (File)
May 15 2024, 9:16 PM
Unknown Object (File)
May 15 2024, 9:15 PM
Unknown Object (File)
Apr 15 2024, 10:37 AM
Unknown Object (File)
Apr 15 2024, 10:36 AM
Unknown Object (File)
Mar 15 2024, 12:44 PM
Unknown Object (File)
Mar 15 2024, 12:44 PM
Unknown Object (File)
Jan 1 2024, 1:49 PM
Unknown Object (File)
Dec 23 2023, 7:59 AM
Subscribers

Details

Summary
  • Avoid unnecessary malloc/free on transmission path.
  • busdma(9)-fy transmission path.
  • Properly handle IFF_DRV_OACTIVE.
  • Properly setup TSO parameters.
  • Properly handle bpf(4) tapping.
  • Allow size of chimney sending be tuned on a running system. Default value still needs more test to determine.

Diff Detail

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

Event Timeline

sepherosa_gmail.com retitled this revision from to hyperv/hn: Partly rework transmission path.
sepherosa_gmail.com updated this object.
sepherosa_gmail.com edited the test plan for this revision. (Show Details)

If no objection comes, this will be committed two days later.

sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
729 ↗(On Diff #12402)

Do we need to assert the return value here?

982 ↗(On Diff #12402)

Please consider comparing with 0 explicitly.

1034 ↗(On Diff #12402)

The return value is not asserted here -- is it intentional?

1066 ↗(On Diff #12402)

Suggestion: compare 'freed' with 0 explicitly.

sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
729 ↗(On Diff #12402)

Nope, we should not assert it here; since it may not be the last txdesc_put, the txdesc_put in hn_start_locked() (for the BPF tap) may be the last txdesc_put.

982 ↗(On Diff #12402)

ok

1034 ↗(On Diff #12402)

Intentional, same reason as the txdesc_put in netvsc_xmit_completion().

1066 ↗(On Diff #12402)

sure :)

Test freed against 0. Suggested by delphij

adrian edited edge metadata.

So I'm okay with this at a first glance, but next time please break it up into smaller pieces. Stuff like busdma'ing things and adding counters should really be separate commits. :-)

So, +1 from me, I'm assuming you've tested it, let's use smaller commits next time!

This revision is now accepted and ready to land.Jan 22 2016, 3:51 AM

So I'm okay with this at a first glance, but next time please break it up into smaller pieces. Stuff like busdma'ing things and adding counters should really be separate commits. :-)

So, +1 from me, I'm assuming you've tested it, let's use smaller commits next time!

OK, I will try next time. It's a big patch, but the original TX path is just too broken to have this patch splitted ;)

This revision was automatically updated to reflect the committed changes.