From 60f41e89e367b87223dc6e77cc75ef977b521edf Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 19 Oct 2016 02:16:40 +0200 Subject: timers: avoid thundering herd for simultaneous initiation Since it's extremely unlikely for jiffies to be exactly identical everywhere, applying quarter second power of two slack not only improves power efficiency but also ensures that retries have a bit of jitter. Signed-off-by: Jason A. Donenfeld --- src/timers.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/timers.c b/src/timers.c index d16d7d1..c37b294 100644 --- a/src/timers.c +++ b/src/timers.c @@ -123,7 +123,7 @@ void timers_handshake_initiated(struct wireguard_peer *peer) if (likely(peer->timer_send_keepalive.data)) del_timer(&peer->timer_send_keepalive); if (likely(peer->timer_retransmit_handshake.data)) - mod_timer(&peer->timer_retransmit_handshake, jiffies + REKEY_TIMEOUT); + mod_timer(&peer->timer_retransmit_handshake, slack_time(jiffies + REKEY_TIMEOUT + HZ / 4)); } /* Should be called after a handshake response message is received and processed. */ -- cgit v1.2.3