Removing USB keyboard after filesystems synced causes panic
with destroyed mutex twa(4)?
giovanni.trematerra at gmail.com
Mon Mar 8 13:59:41 UTC 2010
On Sun, Mar 7, 2010 at 11:24 AM, Garrett Cooper <yanefbsd at gmail.com> wrote:
> On Sun, Mar 7, 2010 at 2:07 AM, Garrett Cooper <yanefbsd at gmail.com> wrote:
>> Hi Alexander and Hans,
>> I recently did the following which generated a panic on a
>> 9-CURRENT kernel compiled on the 26th:
>> 1. Executed reboot
>> 2. Removed keyboard.
>> 3. Some time after `All buffers synced\nUptime: ...' was displayed,
>> the keyboard was registered disconnected.
>> 4. The interrupt was delivered to my twa(4) enabled card and the
>> kernel panicked, like so:
>> ugen2.2: <Mitsumi Electric> at usbus2 (disconnected)
>> uhub8: at uhub2, port 1, addr 2 (disconnected)
>> ugen2.3: <Mitsumi Electric> at usbus2 (disconnected)
>> ukbd0: at uhub8, port 3, addr 3 (disconnected)
>> uhid0: at uhub8, port 3, addr 3 (disconnected)
>> panic: mtx_lock_spin() of destroyed mutex @ /usr/src/sys/dev/twa/tw_cl_intr.c:88
>> cpuid = 1
>> KDB: enter: panic
>> [thread pid 12 tid 100025 ]
>> Stopped at kdb_enter+0x3d: movq $0,0x40289c(%rip)
>> I wish I could provide you with more details, but unfortunately I
>> the USB bus isn't registering the fact that I'm reattaching the
>> keyboard right now and the box won't reboot automatically :( (didn't
>> set the right sysctl beforehand to panic automatically). I'll try and
>> reproduce the issue again, but I was just wondering whether or not you
>> guys had seen this problem before.
> Phew... it's reproducible with that kernel. Here's what I did
> exactly (because my original directions were incorrect):
> 1. Hit power button (for S5).
> 2. Disconnect keyboard RIGHT as `Uptime: ...' is displayed.
> Kernel panicked on my system again. Now to figure out if it still
> exists with a kernel compiled today, and also how to debug it if it
> still does exist :/...
I thinks that's a race in twa driver. You could unplug another USB
device different from your keyboard
and you should still got the panic.
If you get the panic again try to show at least the following information:
bt; show pcpu; show alllocks; show locks; ps
More information about the freebsd-current