[PATCH] b43: avoid packet losses in the dma worker code.

francesco.gringoli at ing.unibs.it francesco.gringoli at ing.unibs.it
Thu Dec 15 10:54:14 EST 2011


On Dec 15, 2011, at 12:29 PM, Rafał Miłecki wrote:

> 2011/12/15  <francesco.gringoli at ing.unibs.it>:
>> This patch addresses a bug in the dma worker code that keeps draining
>> packets even when the hardware queues are full. In such cases packets
>> can not be passed down to the device and are erroneusly dropped by the
>> code.
>> 
>> This problem was already discussed here
>> 
>> http://www.mail-archive.com/b43-dev@lists.infradead.org/msg01413.html
>> 
>> and acknowledged by Michael.
>> 
>> The patch also introduces separate workers for each hardware queues
>> and dedicated buffers where storing packets from mac80211 before sending
>> them down to the hardware.
> 
> Have you considered just a one worked iterating over queues?
> 
> I'm not sure if it's efficient to have so many workers, each can be
> stopped&resumed, each is taking wl mutex...
We were thinking about this issue and at the end we decided to implement this way because of fairness issues among the queues. We tried some dequeuing algorithms (i.e., round robin and priority) but they were all benefitting one of the queues. With four workers instead the tests we made with iperf-udp showed to perfectly share the bandwidth among the queues obeying to the contention window parameters at the air interface.

Thanks for the comments about the previous patch: I changed it a bit and I'm going to post V2.

-Francesco

> 
> -- 
> Rafał




More information about the b43-dev mailing list