current->sched_class->yield_task is NULL, any hint?
Lin Ming
minggr at gmail.com
Wed Apr 9 10:43:32 PDT 2014
Hi Peter,
I hit a panic in sys_sched_yield() because(for some unknown reason)
current->sched_class->yield_task is NULL.
It's an ARM embedded board with 3.4-rt kernel.
Could you share any hint for the possible causes?
Panic log attached.
Line 4551 "yield_task" is NULL.
4546 SYSCALL_DEFINE0(sched_yield)
4547 {
4548 struct rq *rq = this_rq_lock();
4549
4550 schedstat_inc(rq, yld_count);
4551 current->sched_class->yield_task(rq);
4552
4553 /*
4554 * Since we are going to call schedule() anyway, there's
4555 * no need to preempt or enable interrupts:
4556 */
4557 __release(rq->lock);
4558 spin_release(&rq->lock.dep_map, 1, _THIS_IP_);
4559 do_raw_spin_unlock(&rq->lock);
4560 sched_preempt_enable_no_resched();
4561
4562 schedule();
4563
4564 return 0;
4565 }
[12889.449746] r3 : 00000000 r2 : 00000001 r1 : 0000ddfc r0 : c0c1d2c0
r3 is NULL, so "blx r3" crashed.
c007a4e8: e12fff33 blx r3
c007a498 <sys_sched_yield>:
c007a498: e1a0c00d mov ip, sp
c007a49c: e92dd830 push {r4, r5, fp, ip, lr, pc}
c007a4a0: e24cb004 sub fp, ip, #4
c007a4a4: f10c0080 cpsid i
c007a4a8: e1a0300d mov r3, sp
c007a4ac: e3c34d7f bic r4, r3, #8128 ; 0x1fc0
c007a4b0: e3c4403f bic r4, r4, #63 ; 0x3f
c007a4b4: e3012df8 movw r2, #7672 ; 0x1df8
c007a4b8: e34c2073 movt r2, #49267 ; 0xc073
c007a4bc: e30232c0 movw r3, #8896 ; 0x22c0
c007a4c0: e5941014 ldr r1, [r4, #20]
c007a4c4: e34c3070 movt r3, #49264 ; 0xc070
c007a4c8: e7925101 ldr r5, [r2, r1, lsl #2]
c007a4cc: e0835005 add r5, r3, r5
c007a4d0: e1a00005 mov r0, r5
c007a4d4: eb0d472d bl c03cc190 <_raw_spin_lock>
c007a4d8: e594300c ldr r3, [r4, #12]
c007a4dc: e1a00005 mov r0, r5
c007a4e0: e5933030 ldr r3, [r3, #48] ; 0x30
c007a4e4: e593300c ldr r3, [r3, #12]
c007a4e8: e12fff33 blx r3
c007a4ec: f57ff05f dmb sy
c007a4f0: e3a03801 mov r3, #65536 ; 0x10000
c007a4f4: e1952f9f ldrex r2, [r5]
c007a4f8: e6522f13 uadd16 r2, r2, r3
c007a4fc: e1851f92 strex r1, r2, [r5]
c007a500: e3310000 teq r1, #0
c007a504: 1afffffa bne c007a4f4 <sys_sched_yield+0x5c>
c007a508: f57ff04f dsb sy
c007a50c: e320f004 sev
c007a510: e5943004 ldr r3, [r4, #4]
c007a514: e2433001 sub r3, r3, #1
c007a518: e5843004 str r3, [r4, #4]
c007a51c: eb0d44ae bl c03cb7dc <schedule>
c007a520: e3a00000 mov r0, #0
c007a524: e89da830 ldm sp, {r4, r5, fp, sp, pc}
Thanks,
Ming
-------------- next part --------------
A non-text attachment was scrubbed...
Name: panic.log
Type: text/x-log
Size: 20208 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140409/cce21962/attachment-0001.bin>
More information about the linux-arm-kernel
mailing list