What's the latest on fixing IFF_DRV_OACTIVE/if_start/etc?
Adrian Chadd
adrian at freebsd.org
Mon Sep 17 17:45:13 UTC 2012
On 17 September 2012 10:16, John Baldwin <jhb at freebsd.org> wrote:
> I think for if_bridge the fix is that it no longer uses if_start. :)
:)
> For real hardware you will get some sort of TX completion interrupt that will
> restart the transmit queue. Virtual software-only interfaces such as vlan(4)
> and if_bridge(4) don't have that luxury though, and the best bet for them is
> to probably have them use if_transmit instead. vlan(4) and if_bridge(4) are
> already fixed for that (if_bridge was only fixed a week or so ago in HEAD).
I'm still not convinced that going the if_start route (with
process-to-completion) is going to work well when forwarding gobs of
packets on anything bar ${BIG_IRON}, but that aside..
It may be nice to introduce a virtual TX completion callback? Ie, a
child driver could signal that it's successfully drained its TX queue,
notifying any parent drivers that they can send more?
adrian
More information about the freebsd-net
mailing list