Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Jun 2005 17:32:22 -0700
From:      Julian Elischer <julian@elischer.org>
To:        Maksim Yevmenkin <maksim.yevmenkin@savvis.net>
Cc:        Norbert Koch <NKoch@demig.de>, "Freebsd-Hackers@Freebsd.Org" <freebsd-hackers@freebsd.org>
Subject:   Re: kernel panic in usb0; was: RE: using vkbd device
Message-ID:  <42AF7716.7080108@elischer.org>
In-Reply-To: <42AF6A83.4050608@savvis.net>
References:  <000001c570e2$79541300$4801a8c0@ws-ew-3.W2KDEMIG> <42AF6A83.4050608@savvis.net>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help


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@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to 
> "freebsd-hackers-unsubscribe@freebsd.org"




Want to link to this message? Use this URL: <http://docs.FreeBSD.org/cgi/mid.cgi?42AF7716.7080108>