- 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.
Details
- Reviewers
howard0su_gmail.com honzhan_microsoft.com decui_microsoft.com delphij royger adrian - Group Reviewers
network - Commits
- rS294700: hyperv/hn: Partly rework transmission path
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
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 :) |
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 ;)