Re: usb: usbtmc: Questions of the IVI Foundation

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

 



linux-usb-owner@xxxxxxxxxxxxxxx schrieb am 15.05.2017 15:20:22:

> Von: Greg KH <gregkh@xxxxxxxxxx>
> Datum: 15.05.2017 15:20
> Betreff: Re: usb: usbtmc: Questions of the IVI Foundation
> Gesendet von: linux-usb-owner@xxxxxxxxxxxxxxx
> 
> On Mon, May 15, 2017 at 02:47:48PM +0200, Guido.Kiener@xxxxxxxxx
> wrote:
> > Hi all,
> > 
> > Some members of the IVI Foundation www.ivifoundation.org have founded 
a 
> > working group "VISA for Linux" that defines common rules, header 
files, 
> > and shared libraries for Linux to implement the specification of 
"VPP-4.3: 
> > The VISA Library" (see 
> > http://ivifoundation.org/specifications/default.aspx).
> > 
> > Moreover the interoperability of the USBTMC protocol is one of our 
> > requirements. We know that you have already improved the Linux USBTMC 
> > driver (linux/drivers/usb/class/usbtmc.c) that can communicate with 
T&M 
> > instruments. However we are not sure whether this driver already 
includes 
> > all features that we need for our instruments and for the VISA API. 
> > Therefore we ask you to give us some recommendations or replies to our 

> > questions:
> > 
> > 1. "Libusb" versus usbtmc driver: Using "libusb" seems to be a good 
> > alternative for all Linux platforms and is the right fallback solution 

> > until future versions of the USBTMC includes all required features.
> 
> It also works on all other operating systems as well, Windows included,
> so you might find this very useful for everyone.
> 
> > Do you think we should extend the USBTMC driver with our required
> > features (e.g.  vendor specific IO, SRQ handling, asynchronous IO, raw
> > USB IO, timeout)?
> 
> Sure, send patches on, we will be glad to review and evaluate them.
> 
> > Or do you think we shall keep the USBTMC driver in the current state?
> > How long would it take to get changes into the Linux kernel?
> 
> It depends on what the patches look like :)
> 
> Take a look at the kernel files, Documenatation/development_process/ for
> how the kernel is developed.  If you send us a bugfix, we can get that
> merged within a week or so.  If it's a new feature or driver, that has
> to wait until the next merge window, which happens ever 2 1/2 months.
> 
> But don't worry too much about this, send your changes on and we can
> review them and go from there.

Sounds good. I think if we decide to extend the usbtmc driver then we will 
hopefully find some driver developers within the companies who are 
experienced :-)

> 
> > 2. As we have looked at the Linux driver, we’ve noticed that 
performance 
> > of the usbtmc_read() function doesn’t keep up with our fastest 
> > instruments. Do you have any suggestions on how to improve the read 
> > performance?
> 
> Where exactly are things not going fast enough?  Have you found any
> specific bottlenecks?  How fast are you needing to go?  What type of
> interface do you expect userspace to have to handle high rates of data?
>

I'm not sure for 100%, but I assume that reading the IN pipe could be 
setup asynchronously (e.g. with usb_submit_urb(..)) just before sending 
send_request_dev_dep_msg_in(..).
USBTMC_SIZE_IOBUFFER = 2kB is a bottleneck when dealing with data size > 
1MB (Need of Scatter/Gather).

> > 3. Do you have any plans to modify/evolve the USBTMC driver moving 
> > forward? 
> 
> We review any patches that people submit, just like with any other
> kernel driver or subsystem.  Nothing different about this one tiny
> driver :)
> 
> > 4. Do you know of any other differences between the Linux USBTMC 
driver 
> > and the Windows USBTMC driver?
> 
> Most people here have never run windows, so you are asking the wrong
> group :)
> 
> Have you evaluated both and found any differences?

The Windows USBTMC driver is maintained by the IVI Foundation. The main 
difference is that protocol specific headers are filled up or analyzed in 
user mode. This allows VISA vendors to be more flexible to maintain their 
applications. The specification is here: 
http://ivifoundation.org/downloads/Protocol%20Specifications/Ivi-6%202_USBTMC_2010-03-23.pdf

At the moment I'm still not sure about the right way to go. The goal is to 
avoid troubles between different USBTMC applications. So we could do one 
of the following:
1. Drop out or disable the usbtmc driver. The IVI Foundation agrees to use 
only libusb from now and in the future.
2. Replace or extend the usbtmc driver with a new one. For current 
distributions the libusb is an alternative.
3. ...

Thanks,

Guido

> 
> thanks,
> 
> greg k-h
> --
> 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

��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux