[rt2x00-users] [RFC 1/6] rt2x00: Introduce 3 queue commands in drivers (start, kick, stop).
Ivo Van Doorn
ivdoorn at gmail.com
Wed Nov 24 16:02:39 UTC 2010
> On Wed, Nov 24, 2010 at 04:17:37PM +0100, Ivo Van Doorn wrote:
>> js wrote:
>> > What I get is:
>> > - iperf -s : ~15Mbit/s
>> > - iperf -c : ~5Mbit/s
>> Was this better/worse/same compared to before the queue refactor?
> I think it's about the same. The ~5Mbit might be due to
> many warning messages logged to serial console.
> It's horribly slow, though, given that both devices are close
> to each other.
Ok, but at least the queue refactoring didn't cause it to become slow. ;)
>> > [ 1587.183412] phy0 -> rt2800_txdone_entry_check: Warning - TX status report missed for queue 2 entry 25
>> > [ 402.265060] phy0 -> rt2x00usb_watchdog_tx_status: Warning - TX queue 2 status timed out, invoke forced tx handler
>> > I guess these are not expected? Is someone else seeing those?
>> Well practically everybody is seeing those warnings. So you can ignore
>> them from now,
>> only when the watchdog is complaining about the DMA there might be
>> something wrong.
>> I am however looking into these warnings to see if I can reduce them.
> OK. Is the root cause for them unknown or is this a known
> hardware or firmware issue?
Not too sure what is causing them. I'm quite surprised that the
watchdog is firing that often for the status reporting. The lost TX status
report is a known issue which is present in rt61pci and rt2800pci as well.
But for some reason they are caused by different things, so it is hard
to say what is causing them for USB.
>> > [ 509.113280] NOHZ: local_softirq_pending 08
>> > I have no explanation for those. According to google wisdom these are caused by
>> > calling netif_receive_skb() from invalid context (inside ieee80211_deliver_skb()),
>> > but ieee80211_rx_ni() explicitly uses local_bh_disable/local_bh_enable()
>> > to allow calling from process context. If ieee80211_rx_ni() were buggy
>> > more people would see this, right?
>> > rt2800usb driver calls ieee80211_rx_ni() from workqueue in rt2x00usb_work_rxdone(),
>> > so this looks correct.
>> Hmm never got the local_softirq_pending warning before...
> Do you have NOHZ enabled?
Not too sure actually. I'll need to check that.
> I'm trying to find out if something is broken in the board support
> code or USB HCD driver of my platform. But I think "local_softirq_pending 08"
> is NET_RX_SOFTIRQ which can only come from ieee80211_rx_ni().
More information about the users