Felix Fietkau <nbd@xxxxxxxx> writes: > Holding the lock around the entire duration of tx scheduling can create > some nasty lock contention, especially when processing airtime information > from the tx status or the rx path. > Improve locking by only holding the active_txq_lock for lookups / scheduling > list modifications. > > Signed-off-by: Felix Fietkau <nbd@xxxxxxxx> Acked-by: Toke Høiland-Jørgensen <toke@xxxxxxxxxx> > include/net/mac80211.h | 49 ++++++++++++++++-------------------------- > net/mac80211/tx.c | 44 ++++++++++++++----------------------- > 2 files changed, 35 insertions(+), 58 deletions(-) > > diff --git a/include/net/mac80211.h b/include/net/mac80211.h > index 3771625b7a9d..0de0aba580eb 100644 > --- a/include/net/mac80211.h > +++ b/include/net/mac80211.h [ ... ] > -void ieee80211_txq_schedule_start(struct ieee80211_hw *hw, u8 ac) > - __acquires(txq_lock); > +void ieee80211_txq_schedule_start(struct ieee80211_hw *hw, u8 ac); > + > +/* (deprecated) */ > +static inline void ieee80211_txq_schedule_end(struct ieee80211_hw *hw, u8 ac) > +{ > +} I figure I'll post a cleanup of this as part of my reworked schedule change patch; since I'll be messing around with these bits anyway... -Toke