有一个内核恐慌。
我使用addr2line来解析地址,它很高兴if(t-> rcu_read_lock_nesting!= 1)。我不明白为什么内核pannic hanppen在这个地方,有没有办法找出真正的问题在哪里
void __rcu_read_unlock(void)
{
struct task_struct *t = current;
if (t->rcu_read_lock_nesting != 1) {
...
}
/home/liuliming/g1s/common/kernel/rcupdate.c:83
/home/liuliming/g1s/common/kernel/notifier.c:185
/home/liuliming/g1s/common/kernel/notifier.c:192
/home/liuliming/g1s/common/kernel/cpu/idle.c:92
[ 8.171483@2] pgd = c0004000
[ 8.174347@2] [000001c0] *pgd=00000000
[ 8.178084@2] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
[ 8.183552@2] Modules linked in:
[ 8.186767@2] CPU: 2 PID: 0 Comm: swapper/2 Not tainted 3.10.33 #2
[ 8.192933@2] task: e1663300 ti: e168e000 task.ti: e168e000
[ 8.198496@2] PC is at __rcu_read_unlock+0x14/0x50
[ 8.203269@2] LR is at __atomic_notifier_call_chain+0x40/0x4c
[ 8.208997@2] pc : [<c0046cd4>] lr : [<c004ec98>] psr: 60000193
[ 8.208997@2] sp : e168ffb8 ip : 00000000 fp : 00000000
[ 8.220806@2] r10: 00000001 r9 : 414fc091 r8 : c0a358d0
[ 8.226190@2] r7 : 00000001 r6 : 00000000 r5 : ffffffff r4 : 00000000
[ 8.232877@2] r3 : e168e000 r2 : e168ffb8 r1 : 00000001 r0 : 00000000
[ 8.239565@2] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
[ 8.247119@2] Control: 10c5387d Table: 0020404a DAC: 00000015
[ 8.716495@2] [<c0046cd4>] (__rcu_read_unlock+0x14/0x50) from [<c004ec98>] (__atomic_notifier_call_chain+0x40/0x4c)
[ 8.726910@2] [<c004ec98>] (__atomic_notifier_call_chain+0x40/0x4c) from [<c004ecbc>] (atomic_notifier_call_chain+0x18/0x20)
[ 8.738115@2] [<c004ecbc>] (atomic_notifier_call_chain+0x18/0x20) from [<c006ac00>] (cpu_startup_entry+0x80/0x140)
[ 8.748446@2] [<c006ac00>] (cpu_startup_entry+0x80/0x140) from [<00847dc4>] (0x847dc4)
[ 8.756346@2] Code: e1a0200d e3c23d7f e3c3303f e593400c (e59431c0)