On Saturday 20 March 2010 03:49:27 Johannes Berg wrote: > On Fri, 19 Mar 2010 10:33:47 +0100, "lorenzo.bianconi83@xxxxxxxxx" > > >> if (!skb_queue_empty(&local->pending[queue])) > >> > >> tasklet_schedule(&local->tx_pending_tasklet); > >> > >> - > >> - rcu_read_lock(); > >> - list_for_each_entry_rcu(sdata, &local->interfaces, list) > >> - netif_tx_wake_queue(netdev_get_tx_queue(sdata->dev, queue)); > >> - rcu_read_unlock(); > > That's obviously wrong, need to move the code to the else branch of the > above if instead. > > > I tested the patch on kernel 2.6.32.7 with compat-wireless-2010-03-03 > > but > > > it seems that the problem is not solved. If I set the lowest priority > > queue > > > (Backgreound), the system will crash for an out of memory panic. During > > the > > > tests I carried out, I transmit 50Mbps UDP traffic. > > How are you generating traffic? I just dumped like 2Gbps traffic at it > and everything works just fine. I verified queues are stopped and started > properly. i think i'm hitting the same bug, but not sure (i will try to check next week). this is easy to reproduce, but you need 4 (at least 3) machines: setup 2 wireless cards, talking to each other (i use IBSS) on different machines. then setup routing like this: [1] - [WL1] - [WL2] - [2] now send more UDP traffic than the wireless link can handle (iperf -u -b 50M for example) between [1] and [2]. watch the free memory get less and less at [WL1] until it chrashes. bruno -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html