Skip site navigation (1)Skip section navigation (2)
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>