[rt2x00-users] rt2x00 workqueue problems
js at sig21.net
Sat Dec 11 02:45:40 EST 2010
On Fri, Dec 10, 2010 at 04:27:06PM +0100, Helmut Schaa wrote:
> Am Freitag, 10. Dezember 2010 schrieb Johannes Stezenbach:
> > On Thu, Dec 09, 2010 at 10:32:29AM +0100, Helmut Schaa wrote:
> > >
> > > Or, if taking the option Johannes was playing with (async register
> > > read for tx status) we
> > > could move the rx/tx handling to tasklets. I'm just coming up with
> > > this because I've got some
> > > beaconing refactoring + pci driver to tasklet conversion patches in my
> > > queue and the
> > > interrupt thread to tasklet conversion improves performance on embedded systems
> > > considerable (>25% improvement in throughput).
> > I looked through the RX code paths and it looked to me like
> > it would already be safe to run in irq context for rt2800usb,
> > so I decided to try a quick experiment, see below.
> > However, this causes a lot of "TX status report missed" warnings
> > and iperf drops from 15MBit/s to 12Mbit/s.
> :( This could be a result of the asymmetry. The tx status work
> gets less CPU and thus you've got a higher tx status loss? Does that
> sound plausible?
> > I'll try together with my async TX status patch next.
> Yep, that would be great.
This looks even worse, iperf drops from 16.7Mbit/s down to 10.2Mbit/s.
Quite unexpected... On the plus side, there were no "TX status
report missed" warnings. Note that with my current async TX status
patch, txdone_work still runs from a workqueue, only the
"read TX_STA_FIFO, put in txstatus_fifo" code runs in irq.
I'll post an updated async TX status patch set soon.
More information about the users