On Tue, 24 Nov 2020 19:43:08 +0000 Mark Rutland <mark.rutland@xxxxxxx> wrote: > AFAICT, the issue is that arch_cpu_idle() can be dynamically traced with > ftrace, and hence the tracing code can unexpectedly run without RCU > watching. Since that's dynamic tracing, we can avoid it by marking > arch_cpu_idle() and friends as noinstr. Technically, ftrace doesn't care if RCU is watching or not, but the callbacks might, and they need to do the rcu_is_watching() check if they do. Although, there's work to keep those areas from being traced, but to do so, they really need to be minimal, where you don't ever want to trace them. -- Steve