RE: [linux-usb-devel] USB Host performance
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
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
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
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
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
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
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