do_page_fault issue after system boot up for a while

32 views Asked by At

Our embedded system is based on some rockchip platform, while booting up, the system crashes and dump below continuesly.

[   21.842194] Exception stack(0xb0d01ef0 to 0xb0d01f38)
[   21.842642] 1ee0:                                     00000000 eef13800 00000001 b0d00000
[   21.843364] 1f00: a18f2642 00000003 ee132a00 00000001 a186eba6 00000003 00000000 b0d01f68
[   21.844085] 1f20: 00000000 b0d01f40 b0194148 b0623798 20070053 ffffffff
[   21.844667] [<b0101a78>] (__irq_svc) from [<b0623798>] (cpuidle_enter_state+0x170/0x300)
[   21.845380] [<b0623798>] (cpuidle_enter_state) from [<b014e284>] (do_idle+0x224/0x29c)
[   21.846082] [<b014e284>] (do_idle) from [<b014e5cc>] (cpu_startup_entry+0x18/0x1c)
[   21.846751] [<b014e5cc>] (cpu_startup_entry) from [<b0c00d7c>] (start_kernel+0x488/0x4a4)
[   21.848021] bad: scheduling from the idle thread!
[   21.848441] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G      D W         4.19.111 #29
[   21.849106] Hardware name: Generic DT based system
[   21.849538] [<b010f408>] (unwind_backtrace) from [<b010b96c>] (show_stack+0x10/0x14)
[   21.850218] [<b010b96c>] (show_stack) from [<b0842204>] (dump_stack+0x90/0xa4)
[   21.850855] [<b0842204>] (dump_stack) from [<b014dfa8>] (dequeue_task_idle+0x1c/0x28)
[   21.851546] [<b014dfa8>] (dequeue_task_idle) from [<b085811c>] (__schedule+0x244/0x580)
[   21.852248] [<b085811c>] (__schedule) from [<b08584a8>] (schedule+0x50/0xb4)
[   21.852874] [<b08584a8>] (schedule) from [<b085bdd4>] (schedule_timeout+0x1b8/0x268)
[   21.853554] [<b085bdd4>] (schedule_timeout) from [<b085a780>] (__down_interruptible+0x90/0xf8)
[   21.854312] [<b085a780>] (__down_interruptible) from [<b0162e74>] (down_interruptible+0x4c/0x58)
[   21.855091] [<b0162e74>] (down_interruptible) from [<b032b5a0>] (pstore_dump+0xc8/0x328)
[   21.855804] [<b032b5a0>] (pstore_dump) from [<b016b500>] (kmsg_dump+0xbc/0xd4)
[   21.856440] [<b016b500>] (kmsg_dump) from [<b010bae0>] (die+0x170/0x300)
[   21.857032] [<b010bae0>] (die) from [<b0113dec>] (__do_kernel_fault.part.0+0x64/0x74)
[   21.857724] [<b0113dec>] (__do_kernel_fault.part.0) from [<b0113a7c>] (do_page_fault+0x33c/0x348)
[   21.858504] [<b0113a7c>] (do_page_fault) from [<b0113c18>] (do_DataAbort+0x4c/0xec)
[   21.859183] [<b0113c18>] (do_DataAbort) from [<b01019f0>] (__dabt_svc+0x50/0x80)
[   21.859837] Exception stack(0xb0d01dc0 to 0xb0d01e08)
[   21.860287] 1dc0: a00701d3 00010002 0000008c b0d00000 00000000 0000008c 00000000 b0d01e80
[   21.861008] 1de0: 0000002e ee941a00 b0d4e551 b0a14df0 00000000 b0d01e10 b049de80 b085c9f4
[   21.861729] 1e00: a00701d3 ffffffff
[   21.862041] [<b01019f0>] (__dabt_svc) from [<b085c9f4>] (_raw_spin_lock_irqsave+0x28/0x64)
[   21.862765] [<b085c9f4>] (_raw_spin_lock_irqsave) from [<b049de80>] (pm_runtime_get_if_in_use+0x14/0x8c)
[   21.863600] [<b049de80>] (pm_runtime_get_if_in_use) from [<b0479138>] (vop_isr+0x10/0x6cc)
[   21.864324] [<b0479138>] (vop_isr) from [<b016cca8>] (__handle_irq_event_percpu+0x9c/0x124)
[   21.865059] [<b016cca8>] (__handle_irq_event_percpu) from [<b016cd5c>] (handle_irq_event_percpu+0x2c/0x7c)
[   21.865904] [<b016cd5c>] (handle_irq_event_percpu) from [<b016cde4>] (handle_irq_event+0x38/0x5c)
[   21.866682] [<b016cde4>] (handle_irq_event) from [<b0170940>] (handle_fasteoi_irq+0xac/0x168)
[   21.867438] [<b0170940>] (handle_fasteoi_irq) from [<b016bf68>] (generic_handle_irq+0x24/0x34)
[   21.868195] [<b016bf68>] (generic_handle_irq) from [<b016c53c>] (__handle_domain_irq+0x5c/0xb4)
[   21.868961] [<b016c53c>] (__handle_domain_irq) from [<b03b4194>] (gic_handle_irq+0x3c/0x78)
[   21.869695] [<b03b4194>] (gic_handle_irq) from [<b0101a78>] (__irq_svc+0x58/0x8c)

It seems when invoke _raw_spin_lock_irqsave the system run into some page fault error. So I tried to change it to spin_lock_irq. But it reports the same kind exception, what does it mean? How could it get casued page fault with those spin lock?

I change _raw_spin_lock_irqsave to _raw_spin_lock_irq, it would report the similar error there.

[   18.546609] Exception stack(0xb0d01dc0 to 0xb0d01e08)
[   18.547059] 1dc0: 0000008c eead4040 00010002 b0d00000 00000000 0000008c 00000000 b0d01e80
[   18.547780] 1de0: 0000002e ee941a00 b0d4e611 b0a14f74 00000000 b0d01e10 b049e998 b085d590
[   18.548500] 1e00: a00d01d3 ffffffff
[   18.548812] [<b01019f0>] (__dabt_svc) from [<b085d590>] (_raw_spin_lock_irq+0x20/0x5c)
[   18.549514] [<b085d590>] (_raw_spin_lock_irq) from [<b049e998>] (pm_runtime_get_if_in_use+0x14/0x88)
[   18.550315] [<b049e998>] (pm_runtime_get_if_in_use) from [<b0479b78>] (vop_isr+0x10/0x6cc)
[   18.551041] [<b0479b78>] (vop_isr) from [<b016d6e8>] (__handle_irq_event_percpu+0x9c/0x124)
[   18.551777] [<b016d6e8>] (__handle_irq_event_percpu) from [<b016d79c>] (handle_irq_event_percpu+0x2c/0x7c)
[   18.552622] [<b016d79c>] (handle_irq_event_percpu) from [<b016d824>] (handle_irq_event+0x38/0x5c)
[   18.553401] [<b016d824>] (handle_irq_event) from [<b0171380>] (handle_fasteoi_irq+0xac/0x168)
[   18.554157] [<b0171380>] (handle_fasteoi_irq) from [<b016c9a8>] (generic_handle_irq+0x24/0x34)
[   18.554914] [<b016c9a8>] (generic_handle_irq) from [<b016cf7c>] (__handle_domain_irq+0x5c/0xb4)
[   18.555682] [<b016cf7c>] (__handle_domain_irq) from [<b03b4bd4>] (gic_handle_irq+0x3c/0x78)
[   18.556416] [<b03b4bd4>] (gic_handle_irq) from [<b0101a78>] (__irq_svc+0x58/0x8c)
[   18.557070] Exception stack(0xb0d01ef0 to 0xb0d01f38)
[   18.557519] 1ee0:                                     00000000 ffffffff 3e2be000 eef0e140
[   18.558241] 1f00: 906a10cb 00000003 ee169400 00000000 90679e2a 00000003 00000000 b0d01f68
[   18.558962] 1f20: 05355555 b0d01f40 b0624394 b0624398 800d0053 ffffffff
[   18.559544] [<b0101a78>] (__irq_svc) from [<b0624398>] (cpuidle_enter_state+0x170/0x300)
[   18.560258] [<b0624398>] (cpuidle_enter_state) from [<b014e284>] (do_idle+0x224/0x29c)
[   18.560960] [<b014e284>] (do_idle) from [<b014e5cc>] (cpu_startup_entry+0x18/0x1c)
[   18.561629] [<b014e5cc>] (cpu_startup_entry) from [<b0c00d7c>] (start_kernel+0x488/0x4a4)
[   18.562349] bad: scheduling from the idle thread!
[   18.562766] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G      D W         4.19.111 #34
[   18.563430] Hardware name: Generic DT based system
[   18.563860] [<b010f408>] (unwind_backtrace) from [<b010b96c>] (show_stack+0x10/0x14)
[   18.564540] [<b010b96c>] (show_stack) from [<b0842e04>] (dump_stack+0x90/0xa4)
[   18.565177] [<b0842e04>] (dump_stack) from [<b014dfa8>] (dequeue_task_idle+0x1c/0x28)
[   18.565868] [<b014dfa8>] (dequeue_task_idle) from [<b0858d1c>] (__schedule+0x244/0x580)
[   18.566570] [<b0858d1c>] (__schedule) from [<b08590a8>] (schedule+0x50/0xb4)
[   18.567197] [<b08590a8>] (schedule) from [<b085c9d4>] (schedule_timeout+0x1b8/0x268)
[   18.567877] [<b085c9d4>] (schedule_timeout) from [<b085b380>] (__down_interruptible+0x90/0xf8)
[   18.568633] [<b085b380>] (__down_interruptible) from [<b0162e74>] (down_interruptible+0x4c/0x58)
[   18.569413] [<b0162e74>] (down_interruptible) from [<b032bfe0>] (pstore_dump+0xc8/0x328)
[   18.570126] [<b032bfe0>] (pstore_dump) from [<b016bf40>] (kmsg_dump+0xbc/0xd4)
[   18.570762] [<b016bf40>] (kmsg_dump) from [<b010bae0>] (die+0x170/0x300)
[   18.571356] [<b010bae0>] (die) from [<b0113dec>] (__do_kernel_fault.part.0+0x64/0x74)
[   18.572048] [<b0113dec>] (__do_kernel_fault.part.0) from [<b0113a7c>] (do_page_fault+0x33c/0x348)
[   18.572828] [<b0113a7c>] (do_page_fault) from [<b0113c18>] (do_DataAbort+0x4c/0xec)
[   18.573508] [<b0113c18>] (do_DataAbort) from [<b01019f0>] (__dabt_svc+0x50/0x80)
0

There are 0 answers