On Fri, Oct 01, 2021 at 06:50:39PM +0100, Valentin Schneider wrote: > 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? True but the (de-)offloading process can take a random amount of time to complete. During this time if the queue of callbacks is already huge, things can explode. > > 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? Right. > > IIUC it would be a similar case for deoffload when we stash the NOCB GP/CB > kthreads and get rcu_core() running concurrently. You got it! Thanks.