tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

config_mounroot - spinout while attaching nouveaufb0 on amd64 with LOCKDEBUG



Hi,

while debugging the MSI attachment for nouveaufb0, I've got several
times spinout panic like one below. It doesn't happen on every boot,
but on almost every one.

I confirmed via ddb that this happens due to config_mountroot_thread()
holding the kernel lock for too long - that's where backtrack for cpu
0 (which holds the lock) leads.

Would it be worth it to spend some efford to run that thread without
kernel lock, or postpone the driver initialization even further?

Or possibly bump the spinout count (spinout after 1.6 seconds seems a
bit too quick), or maybe just disable the spinout check during boot
altogether?

Jaromir

The end of boot:
[  12.1233898] nouveau0: info: No connectors reported connected with modes
[  12.1392346] kern info: [drm] Cannot find any crtc or sizes - going 1024x768
[  12.1461457] nouveaufb0 at nouveau0
[  13.7057542] Kernel lock error: _kernel_lock,244: spinout

[  13.7157692] lock address : 0xffffffff80a330c0 type     :               spin
[  13.7157692] initialized  : 0xffffffff8070c259
[  13.7257828] shared holds :                  0 exclusive:                  1
[  13.7257828] shares wanted:                  0 exclusive:                  3
[  13.7357995] relevant cpu :                  3 last held:                  0
[  13.7458129] relevant lwp : 0xffff846d0bc7d740 last held: 0xffff846d0daf2b80
[  13.7458129] last locked* : 0xffffffff804e82aa unlocked : 0xffffffff80238583
[  13.7558296] curcpu holds :                  0 wanted by: 0xffff846d0bc7d740

[  13.7658445] panic: LOCKDEBUG: Kernel lock error: _kernel_lock,244: spinout
[  13.7758590] cpu3: Begin traceback...
[  13.7758590] vpanic() at netbsd:vpanic+0x146
[  13.7758590] snprintf() at netbsd:snprintf
[  13.7858758] lockdebug_more() at netbsd:lockdebug_more
[  13.7858758] _kernel_lock() at netbsd:_kernel_lock+0x244
[  13.7958892] ip_slowtimo() at netbsd:ip_slowtimo+0x1a
[  13.7958892] pfslowtimo() at netbsd:pfslowtimo+0x31
[  13.8059048] callout_softclock() at netbsd:callout_softclock+0x10f
[  13.8059048] softint_dispatch() at netbsd:softint_dispatch+0x105
[  13.8159175] DDB lost frame for netbsd:Xsoftintr+0x4f, trying
0xffff9a00adca1ff0
[  13.8259329] Xsoftintr() at netbsd:Xsoftintr+0x4f
[  13.8259329] --- interrupt ---
[  13.8259329] 28f783ada3ba8615:
[  13.8359485] cpu3: End traceback...
[  13.8359485] fatal breakpoint trap in supervisor mode
[  13.8359485] trap type 1 code 0 rip 0xffffffff8021e3a5 cs 0x8 rflags
0x202 cr2 0 ilevel 0x2 rsp 0xffff9a00adca1d70
[  13.8459661] curlwp 0xffff846d0bc7d740 pid 0.36 lowest kstack
0xffff9a00adc9d2c0
Stopped in pid 0.36 (system) at netbsd:breakpoint+0x5:  leave


Home | Main Index | Thread Index | Old Index