Re: [PATCH 05/11] rcu/nocb: Make rcu_core() callbacks acceleration (de-)offloading safe

From: Valentin Schneider
Date: Fri Oct 01 2021 - 13:50:45 EST


On 30/09/21 00:10, Frederic Weisbecker wrote:
> When callbacks are offloaded, the NOCB kthreads handle the callbacks
> progression on behalf of rcu_core().
>
> However during the (de-)offloading process, the kthread may not be
> entirely up to the task. As a result some callbacks grace period
> sequence number may remain stale for a while because rcu_core() won't
> take care of them either.
>

But that should be taken care of at the tail end of the (de)offloading
process, either by rcu_core() or by the NOCB kthreads, no?

Or is it e.g. in the case of offloading, we want to make sure an rcu_core()
invocation runs callback acceleration because even if the NOCB GP/CB
kthreads are being set up, we're not guaranteed is going to do that
straight away?

IIUC it would be a similar case for deoffload when we stash the NOCB GP/CB
kthreads and get rcu_core() running concurrently.

> Fix this with forcing callbacks acceleration from rcu_core() as long
> as the offloading process isn't complete.
>