From: "Toke Høiland-Jørgensen" <toke@toke.dk>
To: Rajkumar Manoharan <rmanohar@codeaurora.org>
Cc: linux-wireless@vger.kernel.org,
make-wifi-fast@lists.bufferbloat.net,
Felix Fietkau <nbd@nbd.name>, Kan Yan <kyan@google.com>,
linux-wireless-owner@vger.kernel.org
Subject: Re: [PATCH RFC v4 3/4] mac80211: Add airtime accounting and scheduling to TXQs
Date: Wed, 26 Sep 2018 11:22:34 +0200 [thread overview]
Message-ID: <87pnx0haud.fsf@toke.dk> (raw)
In-Reply-To: <826b6251746ee4d280d532f4ecdc5aa3@codeaurora.org>
Rajkumar Manoharan <rmanohar@codeaurora.org> writes:
> On 2018-09-16 10:42, Toke Høiland-Jørgensen wrote:
>> This adds airtime accounting and scheduling to the mac80211 TXQ
>> scheduler. A new callback, ieee80211_sta_register_airtime(), is added
>> that drivers can call to report airtime usage for stations.
>>
>> +bool ieee80211_txq_may_transmit(struct ieee80211_hw *hw,
>> + struct ieee80211_txq *txq)
>> +{
>
> [...]
>
>> + if (ret) {
>> + clear_bit(IEEE80211_TXQ_AIRTIME_THROTTLE, &txqi->flags);
>> + list_del_init(&txqi->schedule_order);
>> + } else
>> + set_bit(IEEE80211_TXQ_AIRTIME_THROTTLE, &txqi->flags);
>> +
>>
> This looks wrong to me. txqi->flags are protected by fq->lock but here
> it is by active_txq_lock. no?
Both set_bit() and clear_bit() are atomic operations, so they don't need
separate locking. See Documentation/atomic_bitops.txt
>> @@ -3677,6 +3751,7 @@ void ieee80211_txq_schedule_end(struct
>> ieee80211_hw *hw, u8 ac)
>> struct ieee80211_local *local = hw_to_local(hw);
>>
>> spin_unlock_bh(&local->active_txq_lock[ac]);
>> + tasklet_schedule(&local->wake_txqs_tasklet);
>> }
>>
> It is an overload to schedule wake_txqs_tasklet for each txq unlock.
> Instead I would prefer to call __ieee80211_kick_airtime from
> schedule_end.
> Thoughts?
Yeah, I realise scheduling the whole wake_txqs_tasklet is maybe a bit
heavy-handed here. However just calling into __ieee80211_kick_airtime()
means we'll end up recursing back to the same place, which is not good
either (we could in theory flip-flop between two queues until we run out
of stack space).
My "backup plan" if the wake_txqs_tasklet turns out to be too heavy was
to define a new tasklet just for this use; but wanted to see if this
actually turned out to be a problem first...
-Toke
next prev parent reply other threads:[~2018-09-26 9:22 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-16 17:42 [PATCH RFC v4 0/4] Move TXQ scheduling into mac80211 Toke Høiland-Jørgensen
2018-09-16 17:42 ` [PATCH RFC v4 2/4] cfg80211: Add airtime statistics and settings Toke Høiland-Jørgensen
2018-09-16 17:42 ` [PATCH RFC v4 1/4] mac80211: Add TXQ scheduling API Toke Høiland-Jørgensen
2018-09-18 0:57 ` Rajkumar Manoharan
2018-09-18 10:29 ` Toke Høiland-Jørgensen
2018-09-18 18:51 ` Rajkumar Manoharan
2018-09-18 20:41 ` Toke Høiland-Jørgensen
2018-09-18 21:30 ` Rajkumar Manoharan
2018-09-19 9:09 ` Toke Høiland-Jørgensen
2018-09-19 14:43 ` Kalle Valo
2018-09-19 14:50 ` Toke Høiland-Jørgensen
2018-09-19 16:54 ` Rajkumar Manoharan
2018-09-16 17:42 ` [PATCH RFC v4 4/4] ath9k: Switch to mac80211 TXQ scheduling and airtime APIs Toke Høiland-Jørgensen
2018-09-16 17:42 ` [PATCH RFC v4 3/4] mac80211: Add airtime accounting and scheduling to TXQs Toke Høiland-Jørgensen
2018-09-26 7:09 ` Rajkumar Manoharan
2018-09-26 9:22 ` Toke Høiland-Jørgensen [this message]
2018-09-27 0:09 ` Rajkumar Manoharan
2018-09-28 5:29 ` Rajkumar Manoharan
2018-09-28 7:51 ` Toke Høiland-Jørgensen
2018-09-28 9:27 ` Rajkumar Manoharan
2018-09-28 9:44 ` Rajkumar Manoharan
2018-09-28 9:58 ` Toke Høiland-Jørgensen
2018-09-28 10:19 ` Rajkumar Manoharan
2018-09-28 10:35 ` [Make-wifi-fast] " Jonathan Morton
2018-09-28 10:47 ` Rajkumar Manoharan
2018-09-28 11:02 ` Toke Høiland-Jørgensen
2018-09-28 19:51 ` Rajkumar Manoharan
2018-10-02 6:58 ` Rajkumar Manoharan
2018-10-02 7:41 ` Rajkumar Manoharan
2018-10-02 8:22 ` Toke Høiland-Jørgensen
2018-10-02 16:33 ` Rajkumar Manoharan
2018-10-02 19:00 ` Toke Høiland-Jørgensen
2018-10-02 23:07 ` Rajkumar Manoharan
2018-10-03 5:53 ` Rajkumar Manoharan
2018-10-03 6:27 ` Rajkumar Manoharan
2018-10-03 8:41 ` Toke Høiland-Jørgensen
2018-09-20 21:29 ` [PATCH RFC v4 0/4] Move TXQ scheduling into mac80211 Rajkumar Manoharan
2018-09-21 12:41 ` Toke Høiland-Jørgensen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87pnx0haud.fsf@toke.dk \
--to=toke@toke.dk \
--cc=kyan@google.com \
--cc=linux-wireless-owner@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=make-wifi-fast@lists.bufferbloat.net \
--cc=nbd@nbd.name \
--cc=rmanohar@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.