Hi, I am seeing occasional kernel oops due to NULL pointer dereference on one of my boards. It happens about once per day, always seems to be related to ktime_get(), and always appears to be in a "swapper" process. Has anyone seen similar on the iMX6Q?
Unable to handle kernel NULL pointer dereference at virtual address 00000000^M
pgd = 80004000^M
[00000000] *pgd=00000000^M
Internal error: Oops: 17 [#1] PREEMPT SMP ARM^M
Modules linked in:^M
CPU: 3 PID: 0 Comm: swapper/3 Not tainted 3.14.28-1.0.0_ga+g91cf351 #1^M
task: a8083c00 ti: a80aa000 task.ti: a80aa000^M
PC is at ktime_get+0x4c/0x114^M
LR is at cpuidle_enter_state+0x4c/0xe4^M
pc : [<80073624>] lr : [<804fe670>] psr: 60070093^M
sp : a80abf58 ip : 00000017 fp : 00000000^M
r10: a80abf98 r9 : 000b6c7c r8 : 67d8c054^M
r7 : 00000000 r6 : 00000000 r5 : 80eda200 r4 : a9362704^M
r3 : 00000000 r2 : 56c9e9f3 r1 : 80e407c8 r0 : a8011a00^M
Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel^M
Control: 10c53c7d Table: 13b9804a DAC: 00000015^M
Process swapper/3 (pid: 0, stack limit = 0xa80aa238)^M
Stack: (0xa80abf58 to 0xa80ac000)^M
bf40: 56c9e9f3 00000000^M
bf60: ffffffff 00000000 d4f2f610 00158fb9 ab73d340 80e407c8 80e407c8 ab73d0d0^M
bf80: 00000000 67d8c054 000003f3 a80aa000 00000000 804fe670 67d8c054 000003f3^M
bfa0: 80e46254 ab73d0d0 80e3a574 ab73d0d0 00000000 00000000 00000000 80ef17a4^M
bfc0: 80e407c8 804fe7bc 00000000 a80aa000 80e3a574 8075938c a80aa030 80e943fd^M
bfe0: 80e943fd 8000f17c 00000000 80068234 80e9491c 10008664 56f7c91b 356f332a^M
[<80073624>] (ktime_get) from [<804fe670>] (cpuidle_enter_state+0x4c/0xe4)^M
[<804fe670>] (cpuidle_enter_state) from [<804fe7bc>] (cpuidle_idle_call+0xb4/0x14c)^M
[<804fe7bc>] (cpuidle_idle_call) from [<8000f17c>] (arch_cpu_idle+0x8/0x44)^M
[<8000f17c>] (arch_cpu_idle) from [<80068234>] (cpu_startup_entry+0x100/0x14c)^M
[<80068234>] (cpu_startup_entry) from [<10008664>] (0x10008664)^M
Code: e1c523d8 e5954054 e1a00006 e1cd20f0 (e5963000) ^M
bad: scheduling from the idle thread!^M
CPU: 3 PID: 0 Comm: swapper/3 Not tainted 3.14.28-1.0.0_ga+g91cf351 #1^M
[<800156f0>] (unwind_backtrace) from [<800117d4>] (show_stack+0x10/0x14)^M
Note that this is using the Fido branch of Yocto.
Many thanks
It seems like you have reached the end of memory and have an exception from when the system attempted to swap.
Do you have the swapper turned on? For a variety of reasons the kernel swapper should be turned off on an embedded system.
My guess is the swapper is turned on and the kernel attempted to swap and it failed.