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

From: Eric Dumazet
Date: Wed Apr 13 2022 - 13:53:29 EST


On Wed, Apr 13, 2022 at 10:41 AM David Howells <dhowells@xxxxxxxxxx> wrote:
>
> 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.
>

SGTM, thanks !

Reviewed-by: Eric Dumazet <edumazet@xxxxxxxxxx>