[Codel] [PATCHv3 1/5] mac80211: skip netdev queue control with software queuing

Michal Kazior michal.kazior at tieto.com
Mon Apr 18 01:39:16 EDT 2016


On 17 April 2016 at 00:21, Johannes Berg <johannes at sipsolutions.net> wrote:
>> +static void ieee80211_txq_enqueue(struct ieee80211_local *local,
>> +                               struct txq_info *txqi,
>> +                               struct sk_buff *skb)
>> +{
>> +     lockdep_assert_held(&txqi->queue.lock);
> [...]
>> +     atomic_inc(&local->num_tx_queued);
>
> This global kinda bothers me - anything we can do about removing it?

I don't think so. Re-counting via sta/vif/txq iteration every time is
rather a bad idea.

FWIW This is removed by the "fq" patch. The main purpose of taildrop
patch is to make some comparisons easier.


> We obviously didn't have it now - just one (even bigger limit!) per
> queue, so that's 4000 frames default per interface ... now you're down
> to 512 for the entire hardware. Perhaps keeping it per interface at
> least gets away the worst of the contention here?

The default qdisc limits were arguably already too big anyway.
Nevertheless it makes sense to have the 512 limit per interface
instead of per radio. I'll move num_tx_queued to sdata.


MichaƂ


More information about the Codel mailing list