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
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to