[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170514182716.347236777@linutronix.de>
Date: Sun, 14 May 2017 20:27:16 +0200
From: Thomas Gleixner <tglx@...utronix.de>
To: LKML <linux-kernel@...r.kernel.org>
Cc: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...nel.org>,
Steven Rostedt <rostedt@...dmis.org>,
Mark Rutland <mark.rutland@....com>
Subject: [patch 00/18] init: Enable might_sleep() and smp_processor_id()
debugging early
We recentlty discovered a call path which takes a mutex from the low level
secondary CPU bringup code and wondered why this was not caught by
might_sleep().
The reason is that both debug facilities depend on system_state ==
SYSTEM_RUNNING, which is set after init memory is freed.
That means that the SMP bootup and the builtin driver initialization is not
covered by these checks at all.
The patch series addresses this by adding two intermediate
states. might_sleep() debugging is enabled right when scheduling starts,
i.e. the boot CPU idle task schedules the first time. smp_processor_id()
debugging is enabled right before SMP bringup happens.
Thanks,
tglx
----
arch/arm/kernel/smp.c | 3 +--
arch/metag/kernel/smp.c | 3 +--
arch/x86/kernel/smpboot.c | 2 +-
b/arch/arm64/kernel/smp.c | 3 +--
b/arch/powerpc/kernel/smp.c | 2 +-
drivers/acpi/pci_root.c | 2 +-
drivers/base/node.c | 2 +-
drivers/cpufreq/pasemi-cpufreq.c | 2 +-
drivers/iommu/intel-iommu.c | 4 ++--
drivers/iommu/of_iommu.c | 2 +-
drivers/xen/manage.c | 2 ++
include/linux/kernel.h | 2 ++
init/main.c | 12 ++++++++++--
kernel/async.c | 8 ++++----
kernel/extable.c | 2 +-
kernel/printk/printk.c | 2 +-
kernel/sched/core.c | 4 +++-
lib/smp_processor_id.c | 2 +-
mm/vmscan.c | 2 +-
19 files changed, 36 insertions(+), 25 deletions(-)
Powered by blists - more mailing lists