diff options
author | Felix Fietkau <nbd@nbd.name> | 2020-12-18 19:47:15 +0100 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2021-01-21 13:33:45 +0100 |
commit | d7b649291782430904e17cde2ebfc90f76021ca5 (patch) | |
tree | 2c48e22f5ec5b47f00a05e2b547fc9ea8e74df8f /net/mac80211 | |
parent | bf9009bf21b53501f2abb2f59f9314d85bde5fc9 (diff) |
net/fq_impl: do not maintain a backlog-sorted list of flows
A sorted flow list is only needed to drop packets in the biggest flow when
hitting the overmemory condition.
By scanning flows only when needed, we can avoid paying the cost of
maintaining the list under normal conditions
In order to avoid scanning lots of empty flows and touching too many cold
cache lines, a bitmap of flows with backlog is maintained
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Link: https://lore.kernel.org/r/20201218184718.93650-3-nbd@nbd.name
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/tx.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 935a9ce65749..d981647c2863 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -3337,8 +3337,6 @@ out_recalc: if (head->len != orig_len) { flow->backlog += head->len - orig_len; tin->backlog_bytes += head->len - orig_len; - - fq_recalc_backlog(fq, tin, flow); } out: spin_unlock_bh(&fq->lock); |