netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 net-next 0/5] net_sched: sch_fq: round of improvements
@ 2023-09-20 20:17 Eric Dumazet
  2023-09-20 20:17 ` [PATCH v2 net-next 1/5] net_sched: constify qdisc_priv() Eric Dumazet
                   ` (6 more replies)
  0 siblings, 7 replies; 13+ messages in thread
From: Eric Dumazet @ 2023-09-20 20:17 UTC (permalink / raw)
  To: David S . Miller, Jakub Kicinski, Paolo Abeni
  Cc: Willem de Bruijn, Soheil Hassas Yeganeh, Neal Cardwell,
	Jamal Hadi Salim, Cong Wang, Jiri Pirko, netdev, eric.dumazet,
	Eric Dumazet

For FQ tenth anniversary, it was time for making it faster.

The FQ part (as in Fair Queue) is rather expensive, because
we have to classify packets and store them in a per-flow structure,
and add this per-flow structure in a hash table. Then the RR lists
also add cache line misses.

Most fq qdisc are almost idle. Trying to share NIC bandwidth has
no benefits, thus the qdisc could behave like a FIFO.

This series brings a 5 % throughput increase in intensive
tcp_rr workload, and 13 % increase for (unpaced) UDP packets.

v2: removed an extra label (build bot).
    Fix an accidental increase of stat_internal_packets counter
    in fast path.
    Added "constify qdisc_priv()" patch to allow fq_fastpath_check()
    first parameter to be const.
    typo on 'eligible' (Willem)

Eric Dumazet (5):
  net_sched: constify qdisc_priv()
  net_sched: sch_fq: struct sched_data reorg
  net_sched: sch_fq: change how @inactive is tracked
  net_sched: sch_fq: add fast path for mostly idle qdisc
  net_sched: sch_fq: always garbage collect

 include/net/pkt_sched.h        |   8 +-
 include/uapi/linux/pkt_sched.h |   1 +
 net/sched/sch_fq.c             | 148 +++++++++++++++++++++++----------
 3 files changed, 110 insertions(+), 47 deletions(-)

-- 
2.42.0.459.ge4e396fd5e-goog


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

end of thread, other threads:[~2023-10-01 12:30 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-20 20:17 [PATCH v2 net-next 0/5] net_sched: sch_fq: round of improvements Eric Dumazet
2023-09-20 20:17 ` [PATCH v2 net-next 1/5] net_sched: constify qdisc_priv() Eric Dumazet
2023-09-20 20:45   ` Jamal Hadi Salim
2023-09-20 21:32     ` Eric Dumazet
2023-09-20 22:56       ` Jamal Hadi Salim
2023-09-20 20:17 ` [PATCH v2 net-next 2/5] net_sched: sch_fq: struct sched_data reorg Eric Dumazet
2023-09-20 20:17 ` [PATCH v2 net-next 3/5] net_sched: sch_fq: change how @inactive is tracked Eric Dumazet
2023-09-20 20:17 ` [PATCH v2 net-next 4/5] net_sched: sch_fq: add fast path for mostly idle qdisc Eric Dumazet
2023-09-20 20:17 ` [PATCH v2 net-next 5/5] net_sched: sch_fq: always garbage collect Eric Dumazet
2023-09-20 23:22 ` [PATCH v2 net-next 0/5] net_sched: sch_fq: round of improvements Jamal Hadi Salim
2023-09-21  0:16   ` Willem de Bruijn
2023-09-21  9:33     ` Toke Høiland-Jørgensen
2023-10-01 12:30 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).