Kernel gets deadlocked during smp booting
AYAN KUMAR HALDER
ayankumarh at gmail.com
Tue Jun 16 07:24:28 EDT 2015
Hi All,
I am booting kernel 4.0.4 on an ARM based custom SOC with SMP enabled.
I see that the kernel gets deadlocked on a spinlock. To be precise,
static inline void arch_spin_lock(arch_spinlock_t *lock)
{
...
// loops in the following while loop for indefinite period
while (lockval.tickets.next != lockval.tickets.owner) {
wfe();
lockval.tickets.owner = ACCESS_ONCE(lock->tickets.owner);
}
}
Can someone explain to me what does the loop exactly do.
Besides, any pointers about how to debug such issues.
The backtrace shows the following:-
arch_spin_lock
_raw_spin_lock
vprintk_emit ----> raw_spin_lock(&logbuf_lock);
vprintk_default
printk
smp_init
I can guess that the deadlock is being caused due to logbuf_lock. But,
I am unable to proceed further.
Thanks and Regards,
Ayan kumar Halder
More information about the Kernelnewbies
mailing list