I've just upgraded my WM8850 from 3.13.something (from
github.com/linux-wmt/linux-vtwm, probably testing branch) to 4.2 from
kernel.org and almost immediately noticed that programs gradually start
to hang, then the whole system becomes unresponsive (even VTs cannot be
switched; at least SysRq+EISUB works). strace shows that the frozen
programs are inside nanosleep({0,n},...) call, which, AFAIU, should
return after less than one second (tv_sec = 0, tv_nsec < 999999999 ns ~
1 sec). If I send SIGTERM, nanosleep() is restarted after gettimeofday().
Attaching my .config (which is vt8500_v6_v7_defconfig with some
additional features enabled) and dmesg (there is nothing interesting
even when the bug shows up).
I had also encountered a BUG when the whole system froze for a while:
> Sep 5 21:52:59 mahavishnu kernel: [ 1989.490000] hrtimer: interrupt took 18334 ns
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [minissdpd:2077]
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] CPU: 0 PID: 2077 Comm: minissdpd Not tainted 4.2.0 #3
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] Hardware name: VIA/Wondermedia SoC (Device Tree Support)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] task: ee686380 ti: ee670000 task.ti: ee670000
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] PC is at __getnstimeofday64+0x104/0x168
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] LR is at __getnstimeofday64+0x44/0x168
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] pc : [<c004e9f4>] lr : [<c004e934>] psr: 800f0013
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] sp : ee671f28 ip : edacca9a fp : ee671f78
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] r10: 00000268 r9 : a25c451f r8 : ff2e4aa8
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] r7 : ffffffff r6 : c4653600 r5 : 00000000 r4 : 3b9ac9ff
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] r3 : 5173e317 r2 : 2a9b0d40 r1 : fffffff7 r0 : 00000009
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] Control: 10c53c7d Table: 2d5c8059 DAC: 00000015
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] CPU: 0 PID: 2077 Comm: minissdpd Not tainted 4.2.0 #3
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] Hardware name: VIA/Wondermedia SoC (Device Tree Support)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c0012e18>] (unwind_backtrace) from [<c0011534>] (show_stack+0x10/0x14)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c0011534>] (show_stack) from [<c005c088>] (watchdog_timer_fn+0x138/0x17c)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c005c088>] (watchdog_timer_fn) from [<c0049b80>] (__hrtimer_run_queues.constprop.23+0xd0/0x138)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c0049b80>] (__hrtimer_run_queues.constprop.23) from [<c004a32c>] (hrtimer_interrupt+0x9c/0x1cc)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c004a32c>] (hrtimer_interrupt) from [<c02ada84>] (vt8500_timer_interrupt+0x3c/0x4c)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c02ada84>] (vt8500_timer_interrupt) from [<c0042a00>] (handle_irq_event_percpu+0x50/0x15c)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c0042a00>] (handle_irq_event_percpu) from [<c0042b38>] (handle_irq_event+0x2c/0x40)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c0042b38>] (handle_irq_event) from [<c00450f0>] (handle_level_irq+0x94/0x118)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c00450f0>] (handle_level_irq) from [<c00423fc>] (generic_handle_irq+0x20/0x30)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c00423fc>] (generic_handle_irq) from [<c0042458>] (__handle_domain_irq+0x4c/0xa0)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c0042458>] (__handle_domain_irq) from [<c000937c>] (vt8500_handle_irq+0x6c/0x74)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c000937c>] (vt8500_handle_irq) from [<c0011f80>] (__irq_svc+0x40/0x54)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] Exception stack(0xee671ee0 to 0xee671f28)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] 1ee0: 00000009 fffffff7 2a9b0d40 5173e317 3b9ac9ff 00000000 c4653600 ffffffff
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] 1f00: ff2e4aa8 a25c451f 00000268 ee671f78 edacca9a ee671f28 c004e934 c004e9f4
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] 1f20: 800f0013 ffffffff
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c0011f80>] (__irq_svc) from [<c004e9f4>] (__getnstimeofday64+0x104/0x168)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c004e9f4>] (__getnstimeofday64) from [<c004ea60>] (getnstimeofday64+0x8/0x24)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c004ea60>] (getnstimeofday64) from [<c004f060>] (do_gettimeofday+0x14/0x40)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c004f060>] (do_gettimeofday) from [<c0047edc>] (SyS_gettimeofday+0x1c/0xb4)
> Sep 5 21:52:59 mahavishnu kernel: [ 2016.080000] [<c0047edc>] (SyS_gettimeofday) from [<c000f0e0>] (ret_fast_syscall+0x0/0x3c)
Is there another clocksource I should be able to switch to on WM8850? Is
there a kernel option I should have switched to avoid this behavour?
Is it a sign of faulty hardware I can't do anything about?
--
Best regards,
Ivan