arm64 lockdep splat

Mark Salter msalter at redhat.com
Wed Jun 28 07:49:57 PDT 2017


Hi Mark.

I'm seeing this with lock debugging turned on and booting with ACPI:

[    0.137762] DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags)) 
[    0.137773] ------------[ cut here ]------------ 
[    0.137785] WARNING: CPU: 0 PID: 12 at kernel/locking/lockdep.c:2881 lockdep_trace_alloc+0xb4/0xbc 
[    0.137788] Modules linked in: 
[    0.137793]  
[    0.137797] CPU: 0 PID: 12 Comm: cpuhp/0 Not tainted 4.11.0-10.el7a.aarch64.debug #1 
[    0.137800] Hardware name: HPE ProLiant m400 Server/ProLiant m400 Server, BIOS U02 08/19/2016 
[    0.137803] task: ffff800fc656d000 task.stack: ffff800fc65c8000 
[    0.137807] PC is at lockdep_trace_alloc+0xb4/0xbc 
[    0.137810] LR is at lockdep_trace_alloc+0xb4/0xbc 
...
[    0.137939] [<ffff00000814559c>] lockdep_trace_alloc+0xb4/0xbc 
[    0.137944] [<ffff0000082b4fa0>] kmem_cache_alloc_trace+0x48/0x400 
[    0.137949] [<ffff000008737ac8>] armpmu_alloc+0x38/0x1e4 
[    0.137954] [<ffff000008738588>] arm_pmu_acpi_cpu_starting+0x170/0x1c4 
[    0.137958] [<ffff0000080d5f6c>] cpuhp_invoke_callback+0x100/0xcc0 
[    0.137961] [<ffff0000080d758c>] cpuhp_thread_fun+0xd8/0x12c 
[    0.137966] [<ffff000008104670>] smpboot_thread_fn+0x170/0x27c 
[    0.137970] [<ffff0000080fe910>] kthread+0x114/0x140 
[    0.137975] [<ffff0000080833d0>] ret_from_fork+0x10/0x40 

The lock warning is triggered by GFP_KERNEL allocation with interrupts disabled.
Specifically, warning about possible __GFP_FS reclaim with interrupts off.
Interrupts are disabled for cpuhp startup threads before CPUHP_AP_ONLINE, Is
there any reason why CPUHP_AP_PERF_ARM_ACPI_STARTING can't be moved after
CPUHP_AP_ONLINE? Or we could enabled irqs in arm_pmu_acpi_cpu_starting()? Or
change the alloc flags?





More information about the linux-arm-kernel mailing list