Messages in this thread | | | Date | Mon, 11 Oct 2021 14:11:22 +0200 | From | Frederic Weisbecker <> | Subject | Re: [PATCH 11/11] rcu/nocb: Don't invoke local rcu core on callback overload from nocb kthread |
| |
Phew, the last changelog is the most careless...
On Thu, Sep 30, 2021 at 05:37:37PM +0200, Sebastian Andrzej Siewior wrote: > On 2021-09-30 00:10:12 [+0200], Frederic Weisbecker wrote: > > rcu_core() tries to ensure that its self-invocation in case of callbacks > > overload only happen in softirq/rcuc mode. Indeed it doesn't make sense > > to trigger local RCU core from nocb_cb kthread since it can execute > > on a CPU different from the target rdp. Also in case of overload, the > > nocb_cb kthread simply iterates a new loop of callbacks processing. > > > > However the "offloaded" check that aims at preventing that is wrong. > - that?
Rephrasing the changelog:
"However the "offloaded" check that aims at preventing misplaced rcu_core() invocations is wrong."
> > > First of all that state is volatile and second: softirq/rcuc can > > execute while the target rdp is offloaded. As a result rcu_core() can > > can what?
"As a result rcu_core() can be invoked on the wrong CPU while in the process of (de-offloading)."
Thanks!
> > > Fix that with moving the rcu_core() self-invocation to rcu_core() itself, > > irrespective of the rdp offloaded state. > > Sebastian
| |