All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 00/10] net_sched: defer skb freeing while changing qdiscs
@ 2016-06-14  3:21 Eric Dumazet
  2016-06-14  3:21 ` [PATCH net-next 01/10] net_sched: add the ability to defer skb freeing Eric Dumazet
                   ` (12 more replies)
  0 siblings, 13 replies; 17+ messages in thread
From: Eric Dumazet @ 2016-06-14  3:21 UTC (permalink / raw)
  To: David S . Miller
  Cc: netdev, Eric Dumazet, Jamal Hadi Salim, Cong Wang, Eric Dumazet

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

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2016-06-15 21:08 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-14  3:21 [PATCH net-next 00/10] net_sched: defer skb freeing while changing qdiscs Eric Dumazet
2016-06-14  3:21 ` [PATCH net-next 01/10] net_sched: add the ability to defer skb freeing Eric Dumazet
2016-06-15 12:33   ` Jesper Dangaard Brouer
2016-06-15 12:39     ` Eric Dumazet
2016-06-14  3:21 ` [PATCH net-next 02/10] net_sched: sch_choke: " Eric Dumazet
2016-06-14  3:21 ` [PATCH net-next 03/10] net_sched: sch_codel: defer skb freeing in codel_change() Eric Dumazet
2016-06-14  3:21 ` [PATCH net-next 04/10] net_sched: sch_fq: defer skb freeing Eric Dumazet
2016-06-14  3:21 ` [PATCH net-next 05/10] net_sched: fq_codel: " Eric Dumazet
2016-06-14  3:21 ` [PATCH net-next 06/10] net_sched: sch_hhf: " Eric Dumazet
2016-06-14  3:21 ` [PATCH net-next 07/10] net_sched: sch_htb: " Eric Dumazet
2016-06-14  3:21 ` [PATCH net-next 08/10] net_sched: sch_netem: " Eric Dumazet
2016-06-14  3:21 ` [PATCH net-next 09/10] net_sched: sch_pie: " Eric Dumazet
2016-06-14  3:21 ` [PATCH net-next 10/10] net_sched: sch_fq: " Eric Dumazet
2016-06-15  2:13 ` [PATCH net-next 00/10] net_sched: defer skb freeing while changing qdiscs Cong Wang
2016-06-15  4:20   ` Eric Dumazet
2016-06-15 11:43 ` Jamal Hadi Salim
2016-06-15 21:08 ` David Miller

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.