kernel panic in usb0; was: RE: using vkbd device
Julian Elischer
julian at elischer.org
Wed Jun 15 00:32:22 GMT 2005
Maksim Yevmenkin wrote:
> Norbert,
>
>>>
>>
>>
>> I am observing spurious crashes in usb0 under FreeBSD 4.11.
>> Kernel configuration/hardware:
>> HZ=400, NO_SWAPPING, DEVICE_POLLING (with kern.polling.user_frac=90),
>> fxp ethernet, 6x sio, ohci, Pentium MMX 166 MHz
>
>
> could you try to compile kernel with debugging information? not sure
> if it will fit into ram.
doesn't have to.. the debug info is not loaded. only made available to
the debugger
>
>> When quickly connecting/disconnecting
>
>
> i guess you mean here unplug the keyboard and then immediately plug it
> back, right?
>
sounds like he means "repeatedly."
>> a usb keyboard, after some time I have a panic in process 3 (usb0),
>> either at usbd_ar_pipe+0x7 (when detaching)
>> or at usbd_get_interface_descriptor+0x6 (when attaching).
>>
>> Stack traces are:
>>
>> (a)
>> usbd_ar_pipe+0x7
>> usbd_ar_pipe(0,...)
>> usbd_abort_pipe(0,...)
>> ukbd_enable_intr()
>> ukbd_term()
>> ukbd_detach()
>> DEVICE_DETACH()
>> device_detach()
>> device_delete_child()
>> usb_discommect_port()
>> uhub_explore()
>> usb_discover()
>> usb_event_thread()
>
>
> can you tell what value "pipe" handle has? i suspect its NULL
>
>> (b)
>> usbd_get_interface_descriptor+0x6
>> usbd_get_interface_descriptor(0)
>> ukbd_attach(c0bf3b80)
>> DEVICE_ATTACH()
>> device_probe_and_attach()
>> usbd_probe_and_attach()
>> usbd_new_device()
>> uhub_explore()
>> usb_discover()
>> usb_event_thread()
>
>
> can you tell what value "iface" handle has? i suspect its NULL
>
> can you please compile the kernel with "DIAGNOSTIC" and check for
> messages from usb system?
>
>> In situation(a), ipl is at bio, ks_intr_pipe is NULL when calling
>> usbd_abort_pipe().
>
>
> thats ok. splusb is defined as splbio
>
>> In situation (b), ipl is at none, USB_ATTACH_START() in
>> USB_ATTACK(ukbd) in
>
that would be ATTACH not ATACK! :-)
>> ukbd.c
>> seems to make problems.
>
>
> not sure about this one
>
>> The above stack traces are from ddb. Booting the kernel with -gd and
>> using
>> gdb -k
>> didn't give more information. I almost always get an unusable empty
>> stack
>> trace
>> and different crash addresses.
>
booting with -gd drops you into the (gdb) debugger immediatly..
I presume you have a gdb looking at the serial port and have a
serial debug port defined then?
>
>
> please compile kernel with DIAGNOSTIC and USB_DEBUG. then try to
> adjust various "debug" knobs with sysctl(8) to get debug traces. at
> this point it looks like a race condition of some sort (to me).
>
> thanks,
> max
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to
> "freebsd-hackers-unsubscribe at freebsd.org"
More information about the freebsd-hackers
mailing list