Date: Tue, 30 Oct 2012 23:42:35 -0700 From: Adrian Chadd <adrian@freebsd.org> To: PseudoCylon <moonlightakkiy@yahoo.ca> Cc: FreeBSD Net <freebsd-net@freebsd.org>, freebsd-wireless@freebsd.org, freebsd-arch@freebsd.org Subject: Re: request for help: 'fixing' the 802.11 TX path Message-ID: <CAJ-Vmomkh8KqJQnfTE_FHP10PvTkPGmn5wFxXQX5TkzjmLN_Kg@mail.gmail.com> In-Reply-To: <CAJ-Vmo=9LE8AmLH8Ri0H4CGZBhGoSccPweXwyYVjmmaQnkM2Tw@mail.gmail.com> References: <CAFZ_MYL3v%2BhAea5RaBL4i9o_JjN6_u66znmXXcPsh11L7hHYEg@mail.gmail.com> <CAJ-Vmok5vJNYUbsUuk_Ps=7oLvpJutuyDZ7279bft1qYiYmeTA@mail.gmail.com> <508E50A3.1030008@networx.ch> <CAFZ_MY%2BZ-wtdqtTcqH2jKkpn=8nZatJ5qxp0oRpvXVietGwAmQ@mail.gmail.com> <CAJ-Vmo=9LE8AmLH8Ri0H4CGZBhGoSccPweXwyYVjmmaQnkM2Tw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmomkh8KqJQnfTE_FHP10PvTkPGmn5wFxXQX5TkzjmLN_Kg>