RCU-Task[-Trace] VS EQS (was Re: [PATCH v3 13/25] context_tracking, rcu: Rename rcu_dynticks_task*() into rcu_task*())

From: Frederic Weisbecker
Date: Thu Jul 25 2024 - 10:33:00 EST


Le Wed, Jul 24, 2024 at 04:43:13PM +0200, Valentin Schneider a écrit :
> -/* Turn on heavyweight RCU tasks trace readers on idle/user entry. */
> -static __always_inline void rcu_dynticks_task_trace_enter(void)
> +/* Turn on heavyweight RCU tasks trace readers on kernel exit. */
> +static __always_inline void rcu_task_trace_exit(void)

Before I proceed on this last one, a few questions for Paul and others:

1) Why is rcu_dynticks_task_exit() not called while entering in NMI?
Does that mean that NMIs aren't RCU-Task read side critical sections?

2) Looking further into CONFIG_TASKS_TRACE_RCU_READ_MB=y, it seems to
allow for uses of rcu_read_[un]lock_trace() while RCU is not watching
(EQS). Is it really a good idea to support that? Are we aware of any
such potential usecase?

Thanks!