Re: Help with EHCI Missing Bulk In Callbacks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 15 Jun 2012, Graves, Daniel (GE Healthcare) wrote:

> Hello,
> 
> I'm currently working on a project that communicates with an FPGA board
> over a USB link.  This board sends a heartbeat message to our PC every 8
> seconds.  Every once in a while this message is not processed by our
> software that is listening on the USB port until after 12 seconds
> expire.  After putting an Elysis USB analyzer on the bus we were able to
> prove that the message does come over the wire at the proper 8 second
> interval.  However, the URB call back is not invoked until 4 seconds
> later.  I put some debug statements in the EHCI driver and below is the
> output of what I'm seeing.  Basically these logs show that not even
> scan_async is invoking qh_completions until 4 seconds later.

Do you mean that scan_async runs at the right time but does not call 
qh_completions, or do you mean that scan_async doesn't run until 4 
seconds later?

What is the wMaxPacketSize for the endpoint in question?  What is the 
transfer_buffer_length value for the URB?

>  I put a
> new line in between each 8 second interval for easier readability.  As
> shown, the last one prints 12 seconds later.  The first line of each
> interval is printed right before scan_async calls qh_completions.  The
> next two lines are printed inside of qh_completions once a QTD has been
> detected as deactivated.  I'm just wondering if anyone can help me
> determine if this is a hardware problem with the host controller?  I
> know there have been some updates to the ehci software on newer kernel
> releases but I suspect that this specific problem is not address by
> those changes and it is not a sw problem. 
> 
> The following is what I'm running:
> 
> 2.6.34.8-0.2 Kernel from OpenSuse
> EHCI Chipset is an Intel 82801H (ICH8)
> 
> //Message 1 on time
> Jun 14 21:06:39 magic kernel: [  128.156346] TEMPMSGCHECK---Check
> invoked for our pipe at scan_async.  Time is 4294142,643091
> Jun 14 21:06:39 magic kernel: [  128.156352] TEMPMSG---A serial QTD for
> endpoint 4 has completed 52 at 4294142,643091.  Intresult is 32768
> Jun 14 21:06:39 magic kernel: [  128.156355] TEMPMSG---This serial QTD
> is a short packet. QH State is 1.  Total QTDs are 1
> 
> //Message 2 on time
> Jun 14 21:06:47 magic kernel: [  136.155976] TEMPMSGCHECK---Check
> invoked for our pipe at scan_async.  Time is 4294150,640875
> Jun 14 21:06:47 magic kernel: [  136.155981] TEMPMSG---A serial QTD for
> endpoint 4 has completed 53 at 4294150,640875.  Intresult is 32768
> Jun 14 21:06:47 magic kernel: [  136.155984] TEMPMSG---This serial QTD
> is a short packet. QH State is 1.  Total QTDs are 1
> 
> //Message 3 on time
> Jun 14 21:06:55 magic kernel: [  144.155479] TEMPMSGCHECK---Check
> invoked for our pipe at scan_async.  Time is 4294158,639659
> Jun 14 21:06:55 magic kernel: [  144.155484] TEMPMSG---A serial QTD for
> endpoint 4 has completed 54 at 4294158,639659.  Intresult is 32768
> Jun 14 21:06:55 magic kernel: [  144.155487] TEMPMSG---This serial QTD
> is a short packet. QH State is 1.  Total QTDs are 1
> 
> //This message has come late (12 seconds instead of the usual 8 like the
> previous messages)  USB Analyzer shows this message on the bus on time
> at 8 seconds
> Jun 14 21:07:07 magic kernel: [  156.011433] TEMPMSGCHECK---Check
> invoked for our pipe at scan_async.  Time is 4294170,493857
> Jun 14 21:07:07 magic kernel: [  156.011438] TEMPMSG---A serial QTD for
> endpoint 4 has completed 55 at 4294170,493857.  Intresult is 32768
> Jun 14 21:07:07 magic kernel: [  156.011441] TEMPMSG---This serial QTD
> is a short packet. QH State is 1.  Total QTDs are 1

It's difficult to understand the implications of these messages, except
for the kernel's timestamps.

Please try applying the patch in

	http://marc.info/?l=linux-usb&m=133977231603251&w=2

Your description indicates that IRQs or status information may be lost.  
Let's see what shows up in the dmesg output (not the system log file;
it is less reliable).

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux