Skip to content

Commit 0870b0d

Browse files
edumazetkuba-moo
authored andcommitted
net: busy-poll: use ktime_get_ns() instead of local_clock()
Typically, busy-polling durations are below 100 usec. When/if the busy-poller thread migrates to another cpu, local_clock() can be off by +/-2msec or more for small values of HZ, depending on the platform. Use ktimer_get_ns() to ensure deterministic behavior, which is the whole point of busy-polling. Fixes: 0602129 ("net: add low latency socket poll") Fixes: 9a3c71a ("net: convert low latency sockets to sched_clock()") Fixes: 3708983 ("sched, net: Fixup busy_loop_us_clock()") Signed-off-by: Eric Dumazet <edumazet@google.com> Cc: Mina Almasry <almasrymina@google.com> Cc: Willem de Bruijn <willemb@google.com> Reviewed-by: Joe Damato <jdamato@fastly.com> Link: https://patch.msgid.link/20240827114916.223377-1-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 41901c2 commit 0870b0d

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

include/net/busy_poll.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ static inline bool sk_can_busy_loop(struct sock *sk)
6868
static inline unsigned long busy_loop_current_time(void)
6969
{
7070
#ifdef CONFIG_NET_RX_BUSY_POLL
71-
return (unsigned long)(local_clock() >> 10);
71+
return (unsigned long)(ktime_get_ns() >> 10);
7272
#else
7373
return 0;
7474
#endif

0 commit comments

Comments
 (0)