Re: [PATCH net] rxrpc: Restore removed timer deletion

From: David Howells
Date: Wed Apr 13 2022 - 13:41:30 EST


Eric Dumazet <edumazet@xxxxxxxxxx> wrote:

> ok... so we have a timer and a work queue, both activating each other
> in kind of a ping pong ?

Yes. I want to emit regular keepalive pokes.

> Any particular reason not using delayed works ?

Because there's a race between starting the keepalive timer when a new peer is
added and when the keepalive worker is resetting the timer for the next peer
in the list. This is why I'm using timer_reduce(). delayed_work doesn't
currently have such a facility. It's not simple to add because
try_to_grab_pending() as called from mod_delayed_work_on() cancels the timer -
which is not what I want it to do.

David