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>
Subject: Re: [Make-wifi-fast] [PATCH RFC v4 0/4] Move TXQ scheduling into mac80211
Date: Fri, 21 Sep 2018 14:41:15 +0200 [thread overview]
Message-ID: <87tvmjhvkk.fsf@toke.dk> (raw)
In-Reply-To: <6f97d6300d514c0b6577c9c9376b98a8@codeaurora.org>
Rajkumar Manoharan <rmanohar@codeaurora.org> writes:
> On 2018-09-16 10:42, Toke Høiland-Jørgensen wrote:
>> Another update, addressing most of the concerns raised in the last
>> round:
>>
>> - Added schedule_start()/end() functions that adds locking around the
>> whole scheduling operation, which means we can get rid of the 'first'
>> parameter to ieee80211_next_txq().
>>
> Toke,
>
> Wouldn't this start()/end() APIs cause deadlock if mac80211 tries to
> acquire
> active_txq_lock[ac] again? Or am I missing?
>
> schedule_start()
> while (next_txq()) {
> push_txq -> tx_dequeue()
> return_txq()
> }
> schedule_end()
>
> tx_dequeue()
> ieee80211_free_txskb
> -> ieee80211_report_used_skb
> -> ieee80211_tdls_td_tx_handle
> -> ieee80211_subif_start_xmit
> -> __ieee80211_subif_start_xmit
> -> ieee80211_xmit_fast
> -> ieee80211_queue_skb
> -> schedule_and_wake_txq
Hmm, yeah, that call sequence would certainly deadlock. But earlier, I
think; ieee80211_queue_skb() already takes fq->lock, which is being held
by tx_dequeue(), so this would deadlock on that?
I guess retransmits of TDLS teardown packets don't happen so often?
Otherwise someone would have run into this by now? Or are those frames
not being transmitted through the TXQs at all?
In any case it does seem a bit dangerous to have a possible path where
ieee80211_free_txskb() will result in a call to
ieee80211_subif_start_xmit(). So we should probably fix that in any
case?
-Toke
prev parent reply other threads:[~2018-09-21 12:41 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-16 17:42 Toke Høiland-Jørgensen
2018-09-16 17:42 ` [Make-wifi-fast] [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 ` [Make-wifi-fast] [PATCH RFC v4 2/4] cfg80211: Add airtime statistics and settings Toke Høiland-Jørgensen
2018-09-16 17:42 ` [Make-wifi-fast] [PATCH RFC v4 4/4] ath9k: Switch to mac80211 TXQ scheduling and airtime APIs Toke Høiland-Jørgensen
2018-09-16 17:42 ` [Make-wifi-fast] [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
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 ` 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 ` [Make-wifi-fast] [PATCH RFC v4 0/4] Move TXQ scheduling into mac80211 Rajkumar Manoharan
2018-09-21 12:41 ` Toke Høiland-Jørgensen [this message]
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
List information: https://lists.bufferbloat.net/postorius/lists/make-wifi-fast.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87tvmjhvkk.fsf@toke.dk \
--to=toke@toke.dk \
--cc=kyan@google.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox