mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
Merge branch 'csd.2020.09.04a' into HEAD
csd.2020.09.04a: CPU smp_call_function() torture tests.
This commit is contained in:
@@ -1377,6 +1377,17 @@ config SCF_TORTURE_TEST
|
||||
module may be built after the fact on the running kernel to
|
||||
be tested, if desired.
|
||||
|
||||
config CSD_LOCK_WAIT_DEBUG
|
||||
bool "Debugging for csd_lock_wait(), called from smp_call_function*()"
|
||||
depends on DEBUG_KERNEL
|
||||
depends on 64BIT
|
||||
default n
|
||||
help
|
||||
This option enables debug prints when CPUs are slow to respond
|
||||
to the smp_call_function*() IPI wrappers. These debug prints
|
||||
include the IPI handler function currently executing (if any)
|
||||
and relevant stack traces.
|
||||
|
||||
endmenu # lock debugging
|
||||
|
||||
config TRACE_IRQFLAGS
|
||||
|
||||
@@ -85,12 +85,16 @@ void nmi_trigger_cpumask_backtrace(const cpumask_t *mask,
|
||||
put_cpu();
|
||||
}
|
||||
|
||||
// Dump stacks even for idle CPUs.
|
||||
static bool backtrace_idle;
|
||||
module_param(backtrace_idle, bool, 0644);
|
||||
|
||||
bool nmi_cpu_backtrace(struct pt_regs *regs)
|
||||
{
|
||||
int cpu = smp_processor_id();
|
||||
|
||||
if (cpumask_test_cpu(cpu, to_cpumask(backtrace_mask))) {
|
||||
if (regs && cpu_in_idle(instruction_pointer(regs))) {
|
||||
if (!READ_ONCE(backtrace_idle) && regs && cpu_in_idle(instruction_pointer(regs))) {
|
||||
pr_warn("NMI backtrace for cpu %d skipped: idling at %pS\n",
|
||||
cpu, (void *)instruction_pointer(regs));
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user