Port-macppc archive

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

Re: tstile lockups - side note

On Sat, Jun 29, 2013 at 02:12:53AM +0000, Christos Zoulas wrote:
> >If you want to reproduce it, just boot any kernel with LOCKDEBUG and
> >do "cat /dev/audio".  Boom.
> >
> That looks like snapper-specific. What is the lockdebug message? It could
> be that we need to make the mutex in ki2c.c a spin mutex.

I can reproduce it and have serial console:

# dd if=/dev/zero of=/dev/audio bs=1 count=1
Mutex error: lockdebug_barrier: spin lock held
lock address : 0x000000003f9adb34 type     :               spin
initialized  : 0x000000000047f418                              
shared holds :                  0 exclusive:                  1
shares wanted:                  0 exclusive:                  0
current cpu  :                  0 last held:                  0
current lwp  : 0x000000003f8c4380 last held: 0x000000003f8c4380
last locked* : 0x0000000000190b44 unlocked : 0x000000000018d52c
owner field  : 000000000000000000 wait/spin:                0/1
Stopped in pid 7.1 (dd) at      netbsd:cpu_Debugger+0x10:       lwz     r0, 0x14
0x102ce2f0: at db_panic+0xe8
0x102ce310: at vpanic+0x13c 
0x102ce340: at panic+0x4c  
0x102ce380: at lockdebug_abort1+0xdc
0x102ce3a0: at mutex_enter+0x490    
0x102ce400: at ki2c_i2c_acquire_bus+0x10
0x102ce410: at tas3004_write+0x94       
0x102ce430: at snapper_set_rate+0x2b4
0x102ce460: at snapper_trigger_input+0x6c
0x102ce4d0: at audiostartr+0x7c          
0x102ce4e0: at audiosetinfo+0x8c8
0x102cea80: at audio_set_defaults+0xe8
0x102ceb30: at audio_open+0x214       
0x102cebf0: at audioopen+0xb8  
0x102cec30: at cdev_open+0x98
0x102cec60: at spec_open+0x1f8
0x102cecc0: at VOP_OPEN+0x4c  
0x102cecf0: at vn_open+0x1e0
0x102cedc0: at do_open+0x100
0x102cee40: at do_sys_openat+0x8c
0x102cee80: at sys_open+0x28     
0x102ceeb0: at syscall+0xe0 
0x102cef20: user SC trap #5 by 0xfde30adc: srr1=0xd032
            r1=0xffffddd0 cr=0x28000088 xer=0 ctr=0xfde30ad4

The lock is initialized here:

db{0}> x/i 0x000000000047f418
netbsd:snapper_attach+0x254:    lwz     r3, 0x0(r31)

last locked is:
db{0}> x/i 0x0000000000190b44        
netbsd:audiosetinfo+0x32c:      or      r3, r31, r31


Home | Main Index | Thread Index | Old Index