How can I investigate the cause of "watchdog: BUG: soft lockup"?
孙世龙 sunshilong
sunshilong369 at gmail.com
Sat Jul 4 03:51:08 EDT 2020
Hi, Valdis Klētnieks
Thank you for your generous help.
My understanding of this matter is on a different level with your help.
>>Jul 3 10:23:31 yx kernel: [ 1176.166058] watchdog: BUG: soft lockup -
>>CPU#0 stuck for 22s! [rt_cansend:1837]
>>Jul 3 10:23:31 yx kernel: [ 1176.166066] Modules linked in:
>>......
>>Jul 3 10:23:31 yx kernel: [ 1176.166252] Call Trace:
>>Jul 3 10:23:31 yx kernel: [ 1176.166261] _raw_spin_lock+0x20/0x30
>>Jul 3 10:23:31 yx kernel: [ 1176.166270] can_write+0x6c/0x2c0 [advcan]
>>
>You get into function can_write() in module advcan.
>That tries to take a spinlock, while something else already has it.
Can I draw the conclusion that continually acquiring the spinlock
causes the soft
lockup and the CPU has been stuck for 22s?
Can I think in this way?
Thank you for your attention to this matter.
Best Regards.
Valdis Klētnieks <valdis.kletnieks at vt.edu> 于2020年7月4日周六 下午12:39写道:
>
> > Could you please give me some hint on how to investigate the cause deeply?
>
> Shortening the call trace to the relevant lines:
>
> > Jul 3 10:23:31 yx kernel: [ 1176.166252] Call Trace:
> > Jul 3 10:23:31 yx kernel: [ 1176.166261] _raw_spin_lock+0x20/0x30
> > Jul 3 10:23:31 yx kernel: [ 1176.166270] can_write+0x6c/0x2c0 [advcan]
> > Jul 3 10:23:31 yx kernel: [ 1176.166292] __vfs_write+0x3a/0x190
>
> You get into function can_write() in module advcan.
>
> That tries to take a spinlock, while something else already has it.
>
> The spinlock call is (roughly) 15% of the way through the function can_write().
>
> The 'modules linked in' list includes "advcan(OE)".
>
> The 'O' tells us it's an out-of-tree module, which means you need to talk to
> whoever wrote the module and find out why it's hanging on a spin lock (most
> likely something else is failing to release it).
>
> And that's about as far as we can hint, since we don't have the source for your
> out-of-tree module. If the people who wrote it would clean it up and get it
> into the base Linux tree, then we'd all have access to it and be able to help
> in much greater detail.
>
More information about the Kernelnewbies
mailing list