2013-08-16 72 views
5

我有下面的鎖定。這是否表明slic_test pid 5207是罪犯,還是僅僅表明是因爲內核中的當前宏仍然指向將系統調用到我的驅動程序中的用戶空間進程?此外 - irq事件標記0 ... irq事件標記究竟代表什麼?它不能是自啓動以來的中斷次數......在88798秒後絕對大於0 ...如何判斷用戶空間中的內核軟鎖定和softlockup之間的區別?

該系統是禁用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] ======================= 
+1

當進程僅執行內核上下文而不執行用戶上下文時發生軟鎖定軟鎖定是導致內核在內核模式下循環的一個錯誤,導致不合理的時間阻止其他進程運行 – askb

回答

4

呼叫跟蹤的存在/不存在指示軟鎖定的起源。

[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內核由上述呼叫跟蹤描述引起上述軟鎖止。

  • 如果一個用戶空間進程造成了軟鎖止,線通過其PID會記錄下來,隨後由各個CPU寄存器的內容,無需任何種類的呼叫跟蹤標識的過程。

-2

[88798.449628] PID:5207 COMM:slic_test 不被污染(2.6.27.62#11)

不被污染是指問題發生在內核。

「污點」標誌是說內核的方式,它不是一個內核故障(內核源代碼是開放的,「純」,「污點」來自非GPL的模塊,和其他人。

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

+0

「未感染」 /「感染」與問題沒有任何關係,僅表示是否加載了非GPL模塊。 –

相關問題