Re: [PATCH 11/11] rcu/nocb: Don't invoke local rcu core on callback overload from nocb kthread
From: Sebastian Andrzej Siewior
Date: Thu Sep 30 2021 - 11:37:43 EST
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?
> 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?
> Fix that with moving the rcu_core() self-invocation to rcu_core() itself,
> irrespective of the rdp offloaded state.
Sebastian