Date: Sat, 9 Mar 2019 09:38:40 +1030 From: "O'Connor, Daniel" <darius@dons.net.au> To: FreeBSD Hackers <freebsd-hackers@freebsd.org> Subject: USB stack getting confused Message-ID: <E0371188-FD0A-47E1-8378-40239F5C6622@dons.net.au>
next in thread | raw e-mail | index | archive | help
Hi, I'm developing a data acquisition system on FreeBSD using a USB3 = interface (the OrangeTree ZestSC3) and I find that the USB stack appears = to 'lose' the device after a while. My program normally runs continually doing acquisitions of data for N = seconds, doing some checks and restarting. After a while (~30 1 minute = acquisitions or ~8 30 minute ones) my program can't 'see' the device (it = uses libusb10) any more (it reconnects each acquisition for $REASONS). = Also pretty weirdly usbconfig can't see it either(!). If I stop my program the device reappears in usbconfig. If I restart my = program it works. I did some GDB'ing and it appears that ugen20_enumerate (the libusb10 = interface is implemented by calling libusb20 functions) can't open = /dev/ugenX.Y and errno is 12 (ENOMEM). After digging with dtrace I have seen the open method be something = different for this device. I have also seen it where opening the device = doesn't call usb_fifo_open (not sure what it *does* call though - I see = user land call openat but haven't traced through what gets called). I'm still digging but am somewhat hopeful someone can suggest some = things to look at :) This is on 11.2 if it matters. Thanks. -- Daniel O'Connor "The nice thing about standards is that there are so many of them to choose from." -- Andrew Tanenbaum
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E0371188-FD0A-47E1-8378-40239F5C6622>