lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
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