AW: PROBLEM: usb core looses input packets

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

 



Hello,

First I found that this message was missing in user space. Then I did the following:

- first I traced the packets within the user space and I found that a packet is missing from my drivers read mthod,
- then I put debug messages into my kernel driver and I found that an input packet is missing from usb_bulk_msg(),
- then I put debug messages into usb_api_blocking_completion() and I found that a input packet is missing,
- then I started to use usbmon and I found that usbmon misses a packet exactly where I am missing it too,
- then I plugged a PCI USB host controller card into this PC and this did not happen any more when I used it´s ports to plug in my device.

Therefore I believe to know that this packet is dropped somwhere below my device driver code.

Guenter Gebhardt

-----Ursprüngliche Nachricht-----
Von: linux-usb-owner@xxxxxxxxxxxxxxx [mailto:linux-usb-owner@xxxxxxxxxxxxxxx] Im Auftrag von Alan Stern
Gesendet: Freitag, 20. November 2009 17:06
An: Günter Gebhardt
Cc: linux-usb@xxxxxxxxxxxxxxx
Betreff: Re: PROBLEM: usb core looses input packets

Please format your email text to wrap after 72 columns or so.

On Fri, 20 Nov 2009, Günter Gebhardt wrote:

> Hello,
> 
> I use the usb_bulk_msg() kernel function to write and read to and from 
> a USB device respectively.
> Sometimes the usb_bulk_msg() is missing to deliver an incoming packet.

How do you know?

> This packet is seen however by an USB analyser (Beagle USB 480). A 
> fragment of the Beagle log is located in the attachment beagle.csv.
> The packets in concern have the index number 1132287 and 1132325, 
> where the first is a device request and the latter is the missing 
> corresponding response.

How do you know it is missing?

> A measurement with usbmon shows that this very response is not 
> delivered by the host controller driver. The packet with index 
> d3196a40 in the attachments usbmon.txt (complete traffic) and 
> usbmon_filtered.txt (only the traffic with the device in concern) show 
> that the request is sent to device but the corresponding response is 
> never delivered.

usbmon sometimes drops events.  The response may very well have been received by usb_bulk_msg() even though it did not show up in the usbmon trace.  The only way to tell for certain that it wasn't received is to have your driver print a log message before and after it calls usb_bulk_msg().

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
--
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