RE: [linux-usb-devel] USB Host performance

2006-05-10 Thread Juhee MALA
One starnge thing that I see on the protocol Analyser is that,even within a
URB  after we receive the ACK for one OUT packet the host sends the next OUT
packet after 4-5 microseconds (and I suppose that this is due to some
hardware latency, as software has no controller once the URB i submitted).

Now if we consider this 4microsecond then time to transmit one packet of 512
byte is approximately 14microseconds. Which means a throughput of
approximately 292Mbps.

So to me it seems theat this is the maximum that I could achieve, even if I
remove my all software latencies.

Can anybody tell me the reason for this 4-5microescond, time. Or is there
any way to remove this

JUhee

-Original Message-
From: Alan Stern [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, May 09, 2006 8:10 PM
To: Juhee MALA
Cc: linux-usb-devel@lists.sourceforge.net
Subject: Re: [linux-usb-devel] USB Host performance


On Tue, 9 May 2006, Juhee MALA wrote:

 We are using Linux USB Host stack and doing some performance analysis. 
 For performance analysis we are testing it with a device, which 
 accepts the Bulk-OUT packets with full effieciency (not much-NYTES 
 from device side). We are submitting the data of URB size 8kbytes. The 
 throughput in such scenario that we are getting is approximately 
 175Mbps.
 
 1. Can anybody tell me, if this is a good performance?

Good for what?  It's certainly not the best possible.  But it's more than 
adequate for USB-audio.

 2. Can anybody tell me what is the best performance that can be 
 achieved on a USB host?

The maximum theoretical throughput for high-speed 512-byte bulk transfers is
13 packets per microframe, or 53248000 B/s.  That's equivalent to 426 
million bits per second.

Linux can achieve such rates, if the hardware allows.  To reach it, you have
to submit a lot of URBs asynchronously.  If you're using 8 KB transfer
lengths then you should submit at least two batches of URBs, with at least
64 URBs in each batch, and with the URB_NO_INTERRUPT flag set on each URB
except the last one in a batch.  Each time a batch completes, immediately
submit another batch.

 3. IS there any bench marking tool for checking the host stack 
 performance?

Not that I know of.

 4. Which application should be used for demonstrating the host 
 performance?

This is almost the same question as number 3.

If you want to use your test device, you should select an application that 
will work with it.  Of course, since I don't know what your test device 
is, I can't recommend any applications.

Alan Stern




---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid0709bid3057dat1642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


RE: [linux-usb-devel] USB Host performance

2006-05-10 Thread Alan Stern
On Wed, 10 May 2006, Juhee MALA wrote:

 Hello Allan,
 
 Thanks for your answers. Just one question, when we use the URB_NO_INTERRUPT
 flag, does it inhibit the interrrupt for non-error completions only? or does
 it inhbit all the interrupts? If it inhibits all the interrupts how can we
 monitor the status?

It inhibits normal completion interrupts only; error interrupts will still 
occur.

 The application we are using is the zero  gadget driver, for testing our
 host.

That is not an application; it is a driver.  It runs on the device, not on 
the host.  And it does not run at the maximum possible device speed.

 Actually I just wanted to know what is the maximum speed that anybody
 would have seen with the URB size of  8KByte, or is the theoretical value
 actually achievable?

I don't know what is the maximum speed anybody has ever seen (with any URB
size, not just 8 KB).  In fact, probably _nobody_ knows the maximum speed
ever seen.

And I doubt very much that the theoretical value is achievable with real 
hardware, outside of a laboratory setting.

 One starnge thing that I see on the protocol Analyser is that,even within a
 URB  after we receive the ACK for one OUT packet the host sends the next OUT
 packet after 4-5 microseconds (and I suppose that this is due to some
 hardware latency, as software has no controller once the URB i submitted).

 Now if we consider this 4microsecond then time to transmit one packet of 512
 byte is approximately 14microseconds. Which means a throughput of
 approximately 292Mbps.

 So to me it seems theat this is the maximum that I could achieve, even if I
 remove my all software latencies.

 Can anybody tell me the reason for this 4-5microescond, time. Or is there
 any way to remove this

Since you already know it is a hardware latency you should be asking the 
people who designed the hardware, not us.

Alan Stern



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


Re: [linux-usb-devel] USB Host performance

2006-05-10 Thread David Brownell
On Tuesday 09 May 2006 9:08 pm, Juhee MALA wrote:
 
 Thanks for your answers. Just one question, when we use the URB_NO_INTERRUPT
 flag, does it inhibit the interrrupt for non-error completions only? or does
 it inhbit all the interrupts? If it inhibits all the interrupts how can we
 monitor the status?

It's a hint, and may not change the semantics.  The flag is allowed to change
performance characteristics only.  If the HCD can't do that, it must ignore
the hint.


 The application we are using is the zero  gadget driver, for testing our
 host. Actually I just wanted to know what is the maximum speed that anybody
 would have seen with the URB size of  8KByte, or is the theoretical value
 actually achievable?
 
 The host controller that we are using is Synopsys EHCI controller.

And the peripheral controller is ... ?  Remember the host can't shuffle
data any quicker than the peripheral.


At high speed, 8 KB is 16 bulk packets, a full microframe plus three packets
into the next frame.  Good luck actually achieving that throughput, but call
it two microframes per buffer with normally quick hardware and software on
both sides of the interaction.

In the normal mode, gadget zero is single buffered.  So the absolute best
case for IN traffic involves the peripheral issuing a completion IRQ when
the FIFO fills, and being able to reissue its TX usb_request and queue the
next DMA to that FIFO before that fifo empties ... about 10usec, which is
not unachievable.  OUT traffic is a bit harder to model, but in the best
case it's comparable; unfortunatly peripheral hardware rarely seems to get
near such best cases for OUT transfers.

- Dave



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


Re: [linux-usb-devel] USB Host performance

2006-05-09 Thread Greg KH
On Tue, May 09, 2006 at 11:16:57AM +0530, Juhee MALA wrote:
 We are using Linux USB Host stack and doing some performance analysis.
 For performance analysis we are testing it with a device, which
 accepts the Bulk-OUT packets with full effieciency (not much-NYTES
 from device side). We are submitting the data of URB size 8kbytes. The
 throughput in such scenario that we are getting is approximately
 175Mbps. 
 
 1. Can anybody tell me, if this is a good performance? 

I don't know, is that the max speed of your device?

 2. Can anybody tell me what is the best performance that can be achieved on a 
 USB host? 

It all depends on the USB device as well as the USB host controller
type.

 3. IS there any bench marking tool for checking the host stack performance? 
 4. Which application should be used for demonstrating the host performance? 

Again, it all depends on your device.

What exactly are you trying to show here?  The raw speed of Linux, or of
a specific hardware implementation?

thanks,

greg k-h


---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


Re: [linux-usb-devel] USB Host performance

2006-05-09 Thread Alan Stern
On Tue, 9 May 2006, Juhee MALA wrote:

 We are using Linux USB Host stack and doing some performance analysis.
 For performance analysis we are testing it with a device, which accepts
 the Bulk-OUT packets with full effieciency (not much-NYTES from device
 side). We are submitting the data of URB size 8kbytes. The throughput in
 such scenario that we are getting is approximately 175Mbps.
 
 1. Can anybody tell me, if this is a good performance? 

Good for what?  It's certainly not the best possible.  But it's more than 
adequate for USB-audio.

 2. Can anybody tell me what is the best performance that can be achieved on a 
 USB host? 

The maximum theoretical throughput for high-speed 512-byte bulk transfers
is 13 packets per microframe, or 53248000 B/s.  That's equivalent to 426 
million bits per second.

Linux can achieve such rates, if the hardware allows.  To reach it, you
have to submit a lot of URBs asynchronously.  If you're using 8 KB
transfer lengths then you should submit at least two batches of URBs, with
at least 64 URBs in each batch, and with the URB_NO_INTERRUPT flag set on
each URB except the last one in a batch.  Each time a batch completes,
immediately submit another batch.

 3. IS there any bench marking tool for checking the host stack performance? 

Not that I know of.

 4. Which application should be used for demonstrating the host performance? 

This is almost the same question as number 3.

If you want to use your test device, you should select an application that 
will work with it.  Of course, since I don't know what your test device 
is, I can't recommend any applications.

Alan Stern



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


RE: [linux-usb-devel] USB Host performance

2006-05-09 Thread Juhee MALA
Hello Allan,

Thanks for your answers. Just one question, when we use the URB_NO_INTERRUPT
flag, does it inhibit the interrrupt for non-error completions only? or does
it inhbit all the interrupts? If it inhibits all the interrupts how can we
monitor the status?

The application we are using is the zero  gadget driver, for testing our
host. Actually I just wanted to know what is the maximum speed that anybody
would have seen with the URB size of  8KByte, or is the theoretical value
actually achievable?

The host controller that we are using is Synopsys EHCI controller.

rgds
Juhee



-Original Message-
From: Alan Stern [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, May 09, 2006 8:10 PM
To: Juhee MALA
Cc: linux-usb-devel@lists.sourceforge.net
Subject: Re: [linux-usb-devel] USB Host performance


On Tue, 9 May 2006, Juhee MALA wrote:

 We are using Linux USB Host stack and doing some performance analysis. 
 For performance analysis we are testing it with a device, which 
 accepts the Bulk-OUT packets with full effieciency (not much-NYTES 
 from device side). We are submitting the data of URB size 8kbytes. The 
 throughput in such scenario that we are getting is approximately 
 175Mbps.
 
 1. Can anybody tell me, if this is a good performance?

Good for what?  It's certainly not the best possible.  But it's more than 
adequate for USB-audio.

 2. Can anybody tell me what is the best performance that can be 
 achieved on a USB host?

The maximum theoretical throughput for high-speed 512-byte bulk transfers is
13 packets per microframe, or 53248000 B/s.  That's equivalent to 426 
million bits per second.

Linux can achieve such rates, if the hardware allows.  To reach it, you have
to submit a lot of URBs asynchronously.  If you're using 8 KB transfer
lengths then you should submit at least two batches of URBs, with at least
64 URBs in each batch, and with the URB_NO_INTERRUPT flag set on each URB
except the last one in a batch.  Each time a batch completes, immediately
submit another batch.

 3. IS there any bench marking tool for checking the host stack 
 performance?

Not that I know of.

 4. Which application should be used for demonstrating the host 
 performance?

This is almost the same question as number 3.

If you want to use your test device, you should select an application that 
will work with it.  Of course, since I don't know what your test device 
is, I can't recommend any applications.

Alan Stern




---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid0709bid3057dat1642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


[linux-usb-devel] USB Host performance

2006-05-08 Thread Juhee MALA
We are using Linux USB Host stack and doing some performance analysis. For 
performance analysis we are testing it with a device, which accepts the 
Bulk-OUT packets with full effieciency (not much-NYTES from device side). We 
are submitting the data of URB size 8kbytes. The throughput in such scenario 
that we are getting is approximately 175Mbps. 

1. Can anybody tell me, if this is a good performance? 
2. Can anybody tell me what is the best performance that can be achieved on a 
USB host? 
3. IS there any bench marking tool for checking the host stack performance? 
4. Which application should be used for demonstrating the host performance? 

P.S. - We have synopsys EHCI controller in our system



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid0709bid3057dat1642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel