2013-08-16 81 views
5

私は以下のロックアップがあります。これは、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] ======================= 
+1

プロセスがカーネルコンテキストのみを実行し、ユーザコンテキストではないときにソフトロックアップが発生するsoft lockupは、他のプロセスの実行を阻止するためにカーネルモードをカーネルモードでループさせるバグです – 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

"/"Tainted"は実際には何の問題もなく、GPL以外のモジュールがロードされているかどうかだけを示します。 –

関連する問題