USB stack getting confused

O'Connor, Daniel darius at dons.net.au
Mon Mar 11 04:31:08 UTC 2019



> 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

Dtrace script is..
fbt:kernel:usb_fifo_open:entry {
        printf("Ugen: %s f_open: %p", ((struct usb_fifo *)arg1)->udev->ugen_name, ((struct usb_fifo *)arg1)->methods->f_open);
}

fbt:kernel:usb_fifo_open:return {
        printf("Return: %d Errno: %d", arg1, errno);
}

fbt:kernel:ugen_open:return {
        printf("Return: %d Errno: %d", arg1, errno);
}

syscall:freebsd:openat:entry / pid == $1 / {
        printf("Open: %s", copyinstr(arg1));
}

--
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