Re: USB CDC performance test

Greg KH
2022-03-07T07:50:48Z

On Mon, Mar 07, 2022 at 01:08:28PM +0530, Mithran B wrote:
> On Fri, 4 Mar 2022 at 20:31, Greg KH <greg@kroah.com> wrote:
>
> > On Fri, Mar 04, 2022 at 08:06:55PM +0530, Mithran B wrote:
> > > On Fri, 4 Mar 2022 at 19:48, Greg KH <greg@kroah.com> wrote:
> > >
> > > > On Fri, Mar 04, 2022 at 04:27:50PM +0530, Mithran B wrote:
> > > > > Hello,
> > > > >
> > > > > In Host and Gadget systems, enabled the USB CDC drivers.
> > > > > Then nodes are created as /dev/ttyAcm0 and /dev/ttyGs0.
> > > > > Then opened the nodes and write and read back the data.
> > > > > It is working.
> > > > >
> > > > > I want to test the performance of this interface and drivers.
> > > > > Do we have any utility for this?
> > > > > How to do the performance test?
> > > >
> > > > What exactly do you want to measure? Determine that first before
> > trying
> > > > to find a test for that. Without knowing what you want to measure,
> > it's
> > > > hard to tell you how to measure it :)
> > > >
> > > > good luck!
> > > >
> > > > greg k-h
> > > >
> > >
> > > Thank you.
> > > I want to send the data at the rate of 5mbps from Host device to target
> > > device using USB CDC - ACM.
> > > In termios functions, how to configure this 5mbps as baud rate and USB
> > > payload size, i.e. packet
> > > size to be in 2K bytes.
> >
> > There is no "baud rate" for usb cdc devices, really, as you have tried
> > this already, right?
> >
> > Just send the data as fast as you can, with the largest chunks of data
> > that you have (do not send it byte by byte to the kernel), and you
> > should be fine.
> >
> > Are you sure that your device can handle that type of data rate? That's
> > almost always the limiting factor.
> >
> > good luck!
> >
> > greg k-h
> >
>
> In USB CDC, any software flow control mechanism is implemented?

The specification is public on the usb.org web site, if you are curious.
There is no need for "flow control" like you are used to for older
serial connections with USB, the way USB works handles it automatically
(the host drives the connection, if the device is full, it tells the
host to wait automatically).

> Any hardware flow control mechanism there?

Other than the normal USB flow control mechanism? No, why would there
be?

> How to enable this software flow control mechanism in kernel device drivers?

what software flow control?

> Any other information related to this is good for us.

For whom? What exactly have you tried and what were the results?

thanks,

greg k-h