I am developing an application that communicates with a proprietary USB
composite device (mass storage, HID). The USB device acts as a USB-IR cable
to permit our application to talk to IR devices through the HID interface.
We have very stringent performance requirements for device communication and
we're having some interesting results as we test some differing
configurations. From a USB configuration perspective the Smart Pix supports
a control pipe, 2 bulk pipes (IN/OUT) and an interrupt IN pipe. We use the
control pipe for HID OUT reports and the interrupt IN pipe for HID IN
reports. Our issue is limited to the use of the HID interface, therefore,
the control and interrupt out pipes.

We're seeing some widely disparate download times when communicating with
the devices through the cable. Some of our preliminary testing has focused
on the differences in the USBPORT.SYS device driver versions. Here's a list
that shows what we found:

Windows XP SP 1, USBPORT.SYS

Version 5.1.2600.1106 -> 60 seconds with Hub 2.0
Version 5.1.2600.1151 -> 120 seconds with Hub 2.0
Version 5.1.2600.1243 -> 120 seconds with Hub 2.0
Version 5.1.2600.2180 -> 120 seconds with Hub 2.0

For this experiment, the application software, PC hardware device with data
and Hub were kept constant. Can anybody shed some light on what could be
causing the differences? Is there a way for me to find out what the
specific changes were made in the driver versions?

Thanks in advance for your assistance.

Brad

Re: USB driver performance question by Doron

Doron
Wed Mar 14 23:25:29 CDT 2007

if you are looking for performance, using the control endpoint is not the
way to go. it is by far the slowest of the endpoint types. if you want a
generic pipe to the device, don't overload HID, use winusb instead (see the
WDK for the redistributable)

d

--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


"Brad" <brad.markisohn@roche.com> wrote in message
news:%23OaawZmZHHA.1300@TK2MSFTNGP02.phx.gbl...
>I am developing an application that communicates with a proprietary USB
>composite device (mass storage, HID). The USB device acts as a USB-IR
>cable to permit our application to talk to IR devices through the HID
>interface. We have very stringent performance requirements for device
>communication and we're having some interesting results as we test some
>differing configurations. From a USB configuration perspective the Smart
>Pix supports a control pipe, 2 bulk pipes (IN/OUT) and an interrupt IN
>pipe. We use the control pipe for HID OUT reports and the interrupt IN
>pipe for HID IN reports. Our issue is limited to the use of the HID
>interface, therefore, the control and interrupt out pipes.
>
> We're seeing some widely disparate download times when communicating with
> the devices through the cable. Some of our preliminary testing has
> focused on the differences in the USBPORT.SYS device driver versions.
> Here's a list that shows what we found:
>
> Windows XP SP 1, USBPORT.SYS
>
> Version 5.1.2600.1106 -> 60 seconds with Hub 2.0
> Version 5.1.2600.1151 -> 120 seconds with Hub 2.0
> Version 5.1.2600.1243 -> 120 seconds with Hub 2.0
> Version 5.1.2600.2180 -> 120 seconds with Hub 2.0
>
> For this experiment, the application software, PC hardware device with
> data and Hub were kept constant. Can anybody shed some light on what
> could be causing the differences? Is there a way for me to find out what
> the specific changes were made in the driver versions?
>
> Thanks in advance for your assistance.
>
> Brad
>



Re: USB driver performance question by Anatoly

Anatoly
Thu Mar 15 16:03:48 CDT 2007

Hi Doron,

I'd appreciate if you could explain a bit more about the slowness of control
endpoint. From usb driver point of view, what is a performance difference
between vendor control request with some data packet and same data packet
sent out thru bulk endpoint?

Thanks,
Anatoly.

"Doron Holan [MS]" <doronh@nospam.microsoft.com> wrote in message
news:u%234G4nrZHHA.1580@TK2MSFTNGP05.phx.gbl...
> if you are looking for performance, using the control endpoint is not the
> way to go. it is by far the slowest of the endpoint types. if you want a
> generic pipe to the device, don't overload HID, use winusb instead (see
> the WDK for the redistributable)
>
> d
>
> --
> Please do not send e-mail directly to this alias. this alias is for
> newsgroup purposes only.
> This posting is provided "AS IS" with no warranties, and confers no
> rights.
>
>
> "Brad" <brad.markisohn@roche.com> wrote in message
> news:%23OaawZmZHHA.1300@TK2MSFTNGP02.phx.gbl...
>>I am developing an application that communicates with a proprietary USB
>>composite device (mass storage, HID). The USB device acts as a USB-IR
>>cable to permit our application to talk to IR devices through the HID
>>interface. We have very stringent performance requirements for device
>>communication and we're having some interesting results as we test some
>>differing configurations. From a USB configuration perspective the Smart
>>Pix supports a control pipe, 2 bulk pipes (IN/OUT) and an interrupt IN
>>pipe. We use the control pipe for HID OUT reports and the interrupt IN
>>pipe for HID IN reports. Our issue is limited to the use of the HID
>>interface, therefore, the control and interrupt out pipes.
>>
>> We're seeing some widely disparate download times when communicating with
>> the devices through the cable. Some of our preliminary testing has
>> focused on the differences in the USBPORT.SYS device driver versions.
>> Here's a list that shows what we found:
>>
>> Windows XP SP 1, USBPORT.SYS
>>
>> Version 5.1.2600.1106 -> 60 seconds with Hub 2.0
>> Version 5.1.2600.1151 -> 120 seconds with Hub 2.0
>> Version 5.1.2600.1243 -> 120 seconds with Hub 2.0
>> Version 5.1.2600.2180 -> 120 seconds with Hub 2.0
>>
>> For this experiment, the application software, PC hardware device with
>> data and Hub were kept constant. Can anybody shed some light on what
>> could be causing the differences? Is there a way for me to find out what
>> the specific changes were made in the driver versions?
>>
>> Thanks in advance for your assistance.
>>
>> Brad
>>
>
>



Re: USB driver performance question by Tim

Tim
Sat Mar 17 19:26:33 CDT 2007

"Anatoly Greenblatt" <an_green@_remove_ zahav.net.il> wrote:
>
>I'd appreciate if you could explain a bit more about the slowness of control
>endpoint. From usb driver point of view, what is a performance difference
>between vendor control request with some data packet and same data packet
>sent out thru bulk endpoint?

There are several issues involved here. For one, the control pipe's
maximum packet size is at most 64 bytes. A USB endpoint can use a packet
size of 512 bytes. Control transfers have more bus overhead than bulk
transfers. Control pipe transfers are two-way. The transfer has to go
both ways before it can be completed.

A small portion of the bandwidth is reserved for control pipe transactions.
If there are a pile of control requests and a pile of bulk requests, it
will do a few control requests (up to the limit), and use the rest for
bulk.

How much data are you trying to transmit?
--
Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.