]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
Merge branch 'inetpeer-reduce-false-sharing-and-atomic-operations'
authorJakub Kicinski <kuba@kernel.org>
Wed, 18 Dec 2024 03:37:02 +0000 (19:37 -0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 18 Dec 2024 03:37:57 +0000 (19:37 -0800)
Eric Dumazet says:

====================
inetpeer: reduce false sharing and atomic operations

After commit 8c2bd38b95f7 ("icmp: change the order of rate limits"),
there is a risk that a host receiving packets from an unique
source targeting closed ports is using a common inet_peer structure
from many cpus.

All these cpus have to acquire/release a refcount and update
the inet_peer timestamp (p->dtime)

Switch to pure RCU to avoid changing the refcount, and update
p->dtime only once per jiffy.

Tested:
  DUT : 128 cores, 32 hw rx queues.
  receiving 8,400,000 UDP packets per second, targeting closed ports.

Before the series:
- napi poll can not keep up, NIC drops 1,200,000 packets
  per second.
- We use 20 % of cpu cycles

After this series:
- All packets are received (no more hw drops)
- We use 12 % of cpu cycles.

v1: https://lore.kernel.org/20241213130212.1783302-1-edumazet@google.com
====================

Link: https://patch.msgid.link/20241215175629.1248773-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

Trivial merge