Thread (8 messages) 8 messages, 6 authors, 2026-01-21

Re: [PATCH] time/timecounter: inline timecounter_cyc2time()

From: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
Date: 2025-11-29 17:06:53
Also in: lkml

Eric Dumazet wrote:
New network transport protocols want NIC drivers to get hwtstamps
of all incoming packets, and possibly all outgoing packets.

Swift congestion control is used by good old TCP transport and is
our primary need for timecounter_cyc2time(). This will be upstreamed soon.

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>
Link: https://research.google/pubs/swift-delay-is-simple-and-effective-for-congestion-control-in-the-datacenter/
Cc: Kevin Yang <redacted>
Cc: Willem de Bruijn <willemb@google.com>
Cc: Neal Cardwell <ncardwell@google.com>
Cc: Yuchung Cheng <redacted>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help