[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1465874519-25494-1-git-send-email-edumazet@google.com>
Date: Mon, 13 Jun 2016 20:21:49 -0700
From: Eric Dumazet <edumazet@...gle.com>
To: "David S . Miller" <davem@...emloft.net>
Cc: netdev <netdev@...r.kernel.org>,
Eric Dumazet <edumazet@...gle.com>,
Jamal Hadi Salim <jhs@...atatu.com>,
Cong Wang <xiyou.wangcong@...il.com>,
Eric Dumazet <eric.dumazet@...il.com>
Subject: [PATCH net-next 00/10] net_sched: defer skb freeing while changing qdiscs
qdiscs/classes are changed under RTNL protection and often
while blocking BH and root qdisc spinlock.
When lots of skbs need to be dropped, we free
them under these locks causing TX/RX freezes,
and more generally latency spikes.
I saw spikes of 50+ ms on quite fast hardware...
This patch series adds a simple queue protected by RTNL
where skbs can be placed until RTNL is released.
Note that this might also serve in the future for optional
reinjection of packets when a qdisc is replaced.
Eric Dumazet (10):
net_sched: add the ability to defer skb freeing
net_sched: sch_choke: defer skb freeing
net_sched: sch_codel: defer skb freeing in codel_change()
net_sched: sch_fq: defer skb freeing
net_sched: fq_codel: defer skb freeing
net_sched: sch_hhf: defer skb freeing
net_sched: sch_htb: defer skb freeing
net_sched: sch_netem: defer skb freeing
net_sched: sch_pie: defer skb freeing
net_sched: sch_fq: defer skb freeing
include/linux/rtnetlink.h | 5 +++--
include/net/sch_generic.h | 16 ++++++++++++----
net/core/rtnetlink.c | 22 ++++++++++++++++++++++
net/sched/sch_choke.c | 8 ++++----
net/sched/sch_codel.c | 2 +-
net/sched/sch_fq.c | 19 +++++++++++++------
net/sched/sch_fq_codel.c | 17 +++++++++--------
net/sched/sch_generic.c | 2 +-
net/sched/sch_hhf.c | 4 ++--
net/sched/sch_htb.c | 4 ++--
net/sched/sch_netem.c | 4 +---
net/sched/sch_pie.c | 2 +-
net/sched/sch_sfq.c | 2 +-
13 files changed, 72 insertions(+), 35 deletions(-)
--
2.8.0.rc3.226.g39d4020
Powered by blists - more mailing lists