[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240229141407.283316443@linutronix.de>
Date: Thu, 29 Feb 2024 15:23:35 +0100 (CET)
From: Thomas Gleixner <tglx@...utronix.de>
To: LKML <linux-kernel@...r.kernel.org>
Cc: x86@...nel.org,
Steven Rostedt <rostedt@...dmis.org>,
"Paul E. McKenney" <paulmck@...nel.org>
Subject: [patch 0/6] x86/idle: Cure RCU violations and cleanups
Boris reported that a RCU related warning triggers in the tracer code on
AMD machines which are affected by Erratum 400. On those CPUs the local
APIC timer stops in the C1E halt state. This is handled by a special idle
function which invokes tick_broadcast_enter()/exit() around HALT. These
functions can end up in lockdep or tracing which use RCU protected data,
but the core code already set RCU to idle which means that the RCU
protection is not longer given.
This series fixes this by handling the tick broadcast conditionally in the
core idle function. While working on it I noticed a few bogosities in the
related code and cleaned that up on top.
The series is also available from git:
git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git x86/core
Thanks,
tglx
---
arch/x86/Kconfig | 1
arch/x86/include/asm/processor.h | 2
arch/x86/kernel/cpu/common.c | 4 -
arch/x86/kernel/process.c | 89 +++++++++++----------------------------
include/linux/cpu.h | 2
include/linux/tick.h | 3 +
kernel/sched/idle.c | 21 +++++++++
kernel/time/Kconfig | 5 ++
8 files changed, 62 insertions(+), 65 deletions(-)
Powered by blists - more mailing lists