|
|
Subscribe / Log in / New account

net: deal with strange attractors tx queues

From:  Eric Dumazet <edumazet-AT-google.com>
To:  "David S . Miller" <davem-AT-davemloft.net>, Jakub Kicinski <kuba-AT-kernel.org>, Paolo Abeni <pabeni-AT-redhat.com>
Subject:  [PATCH RFC net-next 0/4] net: deal with strange attractors tx queues
Date:  Wed, 08 Oct 2025 10:46:07 +0000
Message-ID:  <20251008104612.1824200-1-edumazet@google.com>
Cc:  Simon Horman <horms-AT-kernel.org>, Kuniyuki Iwashima <kuniyu-AT-google.com>, Willem de Bruijn <willemb-AT-google.com>, netdev-AT-vger.kernel.org, eric.dumazet-AT-gmail.com, Eric Dumazet <edumazet-AT-google.com>
Archive-link:  Article

Back 2010, Tom Herbert added skb->ooo_okay to TCP flows.

Extend the feature to connected flows for other protocols like UDP.

skb->ooo_okay might never be set for bulk flows that always
have at least one skb in a qdisc queue of NIC queue,
especially if TX completion is delayed because of a stressed cpu.

The so-called "strange attractors" has caused many performance
issues, we need to do better now that TCP deals better with
potential reorders.

Add new net.core.txq_reselection_ms sysctl to let
flows follow XPS and select a more efficient queue.

After this series, we no longer have to make sure threads
are pinned to cpus, they now can be migrated without
adding too much spinlock/qdisc/TX completion pressure anymore.

Eric Dumazet (4):
  net: add SK_WMEM_ALLOC_BIAS constant
  net: control skb->ooo_okay from skb_set_owner_w()
  net: add /proc/sys/net/core/txq_reselection_ms control
  net: allow busy connected flows to switch tx queues

 Documentation/admin-guide/sysctl/net.rst | 15 +++++++++
 include/net/netns/core.h                 |  1 +
 include/net/sock.h                       | 43 ++++++++++++------------
 net/atm/common.c                         |  2 +-
 net/core/dev.c                           | 27 +++++++++++++--
 net/core/net_namespace.c                 |  1 +
 net/core/sock.c                          | 17 +++++++---
 net/core/sysctl_net_core.c               |  7 ++++
 8 files changed, 84 insertions(+), 29 deletions(-)

-- 
2.51.0.710.ga91ca5db03-goog




Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds