Re: [PATCH V4 2/2] rcu: Update jiffies in rcu_cpu_stall_reset()

From: Thomas Gleixner
Date: Wed Aug 23 2023 - 17:37:32 EST


On Wed, Aug 16 2023 at 18:06, Z. qiang wrote:
>> On Wed, Aug 16, 2023 at 1:09 PM Z qiang <qiang.zhang1211@xxxxxxxxx> wrote:
>> > You can replace rcu_state.jiffies_stall update by setting rcu_cpu_stall_suppress
>> > in rcu_cpu_stall_reset(), and reset rcu_cpu_stall_suppress in rcu_gp_init() and
>> > rcu_gp_cleanup().
>> What's the advantage compared with updating jiffies? Updating jiffies
>> seems more straight forward.
>>
>
> In do_update_jiffies_64(), need to acquire jiffies_lock raw spinlock,
> like you said, kgdb is not the only caller of rcu_cpu_stall_reset(),
> the rcu_cpu_stall_reset() maybe invoke in NMI (arch/x86/platform/uv/uv_nmi.c)

What's worse is that KGDB can set breakpoints pretty much everywhere and
there is no guarantee that the jiffies lock is not held when a
breakpoint hits.

Thanks,

tglx