Messages in this thread | | | Date | Mon, 4 Oct 2021 15:14:45 +0200 | From | Frederic Weisbecker <> | Subject | Re: [PATCH 05/11] rcu/nocb: Make rcu_core() callbacks acceleration (de-)offloading safe |
| |
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.
| |