Ho il blocco sottostante. Questo indica che il pid 5207 di slic_test è l'autore del reato o lo sta mostrando solo perché la macro corrente nel kernel sta ancora puntando al processo userspace che ha fatto chiamare il sistema al mio driver? Inoltre - irq event stamp 0 ... che cosa rappresenta esattamente il timbro di evento irq? Non può essere il numero di interruzioni da avvio ... c'erano sicuramente più di 0 dopo 88798 secondi ...Come distinguere tra il soft lockup nel kernel e il softlockup nello userspace?
Il sistema è uniprocessore con CONFIG_SMP disabilitato.
[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] =======================
I blocchi software si verificano quando il processo esegue solo il contesto del kernel e non nel contesto dell'utente. Il blocco software è un errore che causa il loop del kernel in modalità kernel per un periodo di tempo irragionevole che blocca l'esecuzione di altri processi. – askb