request for help: 'fixing' the 802.11 TX path
Adrian Chadd
adrian at freebsd.org
Wed Oct 31 06:42:36 UTC 2012
So I cheaped out for now and just wrapped the ath TX path in a new TX only lock.
I'm open to other suggestions about how to make the "queue everything
through a taskqueue" work, but unfortunately it seems that I'm
defeated by the inner workings of the network stack locking and how
that plays with the scheduler.
I even tried experimenting with a second taskqueue just for TX but it
still suffered from much reduced performance.
The annoying thing? Changing the eventtimer to enable
periodic+idletick improved performance as well as flipping
machdep.idle=spin. I thought that stuff was fixed but alas.
So now this is done, I may create a per-VAP TX lock in net80211 in
order to serialise raw and normal net80211 TX; that will fix a lot of
the the serialisation and state issues that creep up. Then it's off to
if_transmit() land.
Thanks everyone,
Adrian
More information about the freebsd-arch
mailing list