Port-macppc archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: tstile lockups - side note
I'm not familar with audio at all, but isn't it dangerous to access
I2C (== slow serial bus) from interrupt context, and a sping mutex
held ... ?
On Sat, Jun 29, 2013 at 10:10 PM, Martin Husemann
<martin%duskware.de@localhost> wrote:
> 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
>
> panic: LOCKDEBUG
> Stopped in pid 7.1 (dd) at netbsd:cpu_Debugger+0x10: lwz r0,
> 0x14
> (r1)
> 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
>
>
> Martin
Home |
Main Index |
Thread Index |
Old Index