USB stack getting confused

O'Connor, Daniel darius at dons.net.au
Mon Mar 11 06:36:26 UTC 2019



> On 11 Mar 2019, at 15:00, O'Connor, Daniel <darius at dons.net.au> wrote:
> 
> 
> 
>> On 11 Mar 2019, at 14:27, O'Connor, Daniel <darius at dons.net.au> wrote:
>> I can dig into the kernel part if you want but will need some guidance where to look..
> 
> Note that I put a dtrace probe on ugen_open and usb_fifo_open and it does not fire for 0.5, eg..
> [maarsytest 4:28] ~> sudo dtrace -s ~/usb_fifo.d 2324
> Password:
> dtrace: script '/home/radar/usb_fifo.d' matched 4 probes
> CPU     ID                    FUNCTION:NAME
>  2  65418                     openat:entry Open: /home/radar/ud3/run/experiment.stemp
>  0  65418                     openat:entry Open: /local0/Measurements/Phasetest/20190311-0428.noise
>  2  65418                     openat:entry Open: /home/radar/ud3/lib/acquisition//integrate.plugin
>  3  65418                     openat:entry Open: /dev/ugsio0.ud
>  3  12030              usb_fifo_open:entry Ugen: ugen0.2 f_open: ffffffff822946a0
>  3  12031             usb_fifo_open:return Return: 0 Errno: 9
>  3  65418                     openat:entry Open: /dev/ussio0.ud
>  0  65418                     openat:entry Open: /dev/usbctl
>  0  65418                     openat:entry Open: /dev/ugen0.1
>  0  12030              usb_fifo_open:entry Ugen: ugen0.1 f_open: ffffffff8093fd00
>  0  12102                 ugen_open:return Return: 0 Errno: 0
>  0  12031             usb_fifo_open:return Return: 0 Errno: 0
>  0  12030              usb_fifo_open:entry Ugen: ugen0.1 f_open: ffffffff8093fd00
>  0  12102                 ugen_open:return Return: 0 Errno: 0
>  0  12031             usb_fifo_open:return Return: 0 Errno: 0
>  3  65418                     openat:entry Open: /dev/ugen0.2
>  3  12030              usb_fifo_open:entry Ugen: ugen0.2 f_open: ffffffff8093fd00
>  3  12102                 ugen_open:return Return: 0 Errno: 0
>  3  12031             usb_fifo_open:return Return: 0 Errno: 0
>  3  12030              usb_fifo_open:entry Ugen: ugen0.2 f_open: ffffffff8093fd00
>  3  12102                 ugen_open:return Return: 0 Errno: 0
>  3  12031             usb_fifo_open:return Return: 0 Errno: 0
>  3  65418                     openat:entry Open: /dev/ugen0.3
>  3  12030              usb_fifo_open:entry Ugen: ugen0.3 f_open: ffffffff8093fd00
>  3  12102                 ugen_open:return Return: 0 Errno: 0
>  3  12031             usb_fifo_open:return Return: 0 Errno: 0
>  3  12030              usb_fifo_open:entry Ugen: ugen0.3 f_open: ffffffff8093fd00
>  3  12102                 ugen_open:return Return: 0 Errno: 0
>  3  12031             usb_fifo_open:return Return: 0 Errno: 0
>  1  65418                     openat:entry Open: /dev/ugen0.4
>  1  12030              usb_fifo_open:entry Ugen: ugen0.4 f_open: ffffffff8093fd00
>  1  12102                 ugen_open:return Return: 0 Errno: 0
>  1  12031             usb_fifo_open:return Return: 0 Errno: 0
>  1  12030              usb_fifo_open:entry Ugen: ugen0.4 f_open: ffffffff8093fd00
>  1  12102                 ugen_open:return Return: 0 Errno: 0
>  1  12031             usb_fifo_open:return Return: 0 Errno: 0
>  1  65418                     openat:entry Open: /dev/ugen0.5

I just realised I can check procstat for open file, derp.

[maarsytest 6:26] ~> procstat -f 2324|grep 0.5.0| wc
      64     640    4928

So I guess that is why it is giving ENOMEM, I'm leaking FDs!
--
Daniel O'Connor
"The nice thing about standards is that there
are so many of them to choose from."
 -- Andrew Tanenbaum




More information about the freebsd-hackers mailing list