簡體   English   中英

如何區分內核中的軟鎖定和用戶空間中的softlockup?

[英]How to tell the difference between soft lockup in kernel and softlockup in userspace?

我有以下鎖定。 這是否表明slic_test pid 5207是罪犯,或者它只顯示,因為內核中的當前宏仍然指向使系統調用到我的驅動程序的用戶空間進程? 此外 - irq事件標記0 ... irq事件標記到底代表什么? 自開機以來它不能是中斷數...在88798秒后肯定超過0 ...

系統是單處理器,禁用CONFIG_SMP。

[88798.449628] BUG: soft lockup - CPU#0 stuck for 61s! [slic_test:5207]
[88798.449628] Modules linked in: slic_xxxx leds_xxxx vortex86_spi dm_mirror dm_log dm_multipath dm_mod ohci_hcd ehci_hcd r6040 vortex86_wdt vortex86_gpio [last un]
[88798.449628] irq event stamp: 0
[88798.449628] hardirqs last  enabled at (0): [<00000000>] 0x0
[88798.449628] hardirqs last disabled at (0): [<c0115563>] copy_process+0x233/0x1090
[88798.449628] softirqs last  enabled at (0): [<c0115563>] copy_process+0x233/0x1090
[88798.449628] softirqs last disabled at (0): [<00000000>] 0x0
[88798.449628]
[88798.449628] Pid: 5207, comm: slic_test Not tainted (2.6.27.62 #11)
[88798.449628] EIP: 0060:[<c011b6b5>] EFLAGS: 00000246 CPU: 0
[88798.449628] EIP is at __do_softirq+0x45/0xb0
[88798.449628] EAX: 00000000 EBX: 00000082 ECX: 00000001 EDX: dfac5080
[88798.449628] ESI: c0696120 EDI: 0000000a EBP: df3bdf8c ESP: df3bdf80
[88798.449628]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
[88798.449628] CR0: 8005003b CR2: b7622780 CR3: 1f3c8000 CR4: 00000000
[88798.449628] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[88798.449628] DR6: ffff0ff0 DR7: 00000400
[88798.449628]  [<c011b766>] do_softirq+0x46/0x50
[88798.449628]  [<c011bad5>] irq_exit+0x45/0x50
[88798.449628]  [<c01057ba>] do_IRQ+0x4a/0x90
[88798.449628]  [<c0103e68>] common_interrupt+0x28/0x30
[88798.449628]  =======================

呼叫追蹤的存在/不存在表示軟鎖定的起源。

[88798.449628]  [<c011b766>] do_softirq+0x46/0x50
[88798.449628]  [<c011bad5>] irq_exit+0x45/0x50
[88798.449628]  [<c01057ba>] do_IRQ+0x4a/0x90
[88798.449628]  [<c0103e68>] common_interrupt+0x28/0x30
  • Linux內核導致上述軟鎖定,如上面的call-trace所述

  • 如果用戶空間進程導致軟鎖定,則會記錄通過其pid標識進程的行,然后記錄各種CPU寄存器的內容,而不記錄任何類型的調用跟蹤。

[88798.449628] Pid:5207,comm:slic_test 沒有污染 (2.6.27.62#11)

沒有污點意味着內核發生了問題。

“污點”標志是內核的方式,它說它不是內核錯誤(內核源是開放的和“純粹的”。“污點”來自非GPL模塊,以及其他。

http://www.opensourceforu.com/2011/01/understanding-a-kernel-oops/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM