On Mon, Sep 19, 2022 at 11:59:39AM +0200, Peter Zijlstra wrote:
Hi All! At long last, a respin of the cpuidle vs rcu cleanup patches. v1: https://lkml.kernel.org/r/20220608142723.103523089@xxxxxxxxxxxxx These here patches clean up the mess that is cpuidle vs rcuidle. At the end of the ride there's only on RCU_NONIDLE user left: arch/arm64/kernel/suspend.c: RCU_NONIDLE(__cpu_suspend_exit()); and 'one' trace_*_rcuidle() user: kernel/trace/trace_preemptirq.c: trace_irq_enable_rcuidle(CALLER_ADDR0, CALLER_ADDR1); kernel/trace/trace_preemptirq.c: trace_irq_disable_rcuidle(CALLER_ADDR0, CALLER_ADDR1); kernel/trace/trace_preemptirq.c: trace_irq_enable_rcuidle(CALLER_ADDR0, caller_addr); kernel/trace/trace_preemptirq.c: trace_irq_disable_rcuidle(CALLER_ADDR0, caller_addr); kernel/trace/trace_preemptirq.c: trace_preempt_enable_rcuidle(a0, a1); kernel/trace/trace_preemptirq.c: trace_preempt_disable_rcuidle(a0, a1); However this last is all in deprecated code that should be unused for GENERIC_ENTRY. I've touched a lot of code that I can't test and I might've broken something by accident. In particular the whole ARM cpuidle stuff was quite involved. Please all; have a look where you haven't already. New since v1: - rebase on top of Frederic's rcu-context-tracking rename fest - more omap goodness as per the last discusion (thanks Tony!) - removed one more RCU_NONIDLE() from arm64/risc-v perf code - ubsan/kasan fixes - intel_idle module-param for testing - a bunch of extra __always_inline, because compilers are silly.
Except for those I have already tagged as Reviewed: Acked-by: Frederic Weisbecker <frederic@xxxxxxxxxx> Thanks for the hard work!