summaryrefslogtreecommitdiff
path: root/kernel/task_work.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2025-11-29 09:57:40 +0000
committerThomas Gleixner <tglx@linutronix.de>2025-12-15 20:16:49 +0100
commit4725344462362e2ce2645f354737a8ea4280fa57 (patch)
treed36ff2113a472ffc82fff7d3b6d63a551cec3017 /kernel/task_work.c
parent8f0b4cce4481fb22653697cced8d0d04027cb1e8 (diff)
time/timecounter: Inline timecounter_cyc2time()
New network transport protocols want NIC drivers to get hardware timestamps of all incoming packets, and possibly all outgoing packets. One example is the upcoming 'Swift congestion control' which is used by TCP transport and is the primary need for timecounter_cyc2time(). This means timecounter_cyc2time() can be called more than 100 million times per second on a busy server. Inlining timecounter_cyc2time() brings a 12% improvement on a UDP receive stress test on a 100Gbit NIC. Note that FDO, LTO, PGO are unable to magically help for this case, presumably because NIC drivers are almost exclusively shipped as modules. Add an unlikely() around the cc_cyc2ns_backwards() case, even if FDO (when used) is able to take care of this optimization. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://research.google/pubs/swift-delay-is-simple-and-effective-for-congestion-control-in-the-datacenter/ Link: https://patch.msgid.link/20251129095740.3338476-1-edumazet@google.com
Diffstat (limited to 'kernel/task_work.c')
0 files changed, 0 insertions, 0 deletions