Date: Thu, 11 May 2017 11:35:18 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-usb@FreeBSD.org Subject: [Bug 219220] syscalls (ioctls) on USB devices are very slow Message-ID: <bug-219220-17@https.bugs.freebsd.org/bugzilla/>
index | next in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=219220 Bug ID: 219220 Summary: syscalls (ioctls) on USB devices are very slow Product: Base System Version: CURRENT Hardware: amd64 OS: Any Status: New Severity: Affects Only Me Priority: --- Component: usb Assignee: freebsd-usb@FreeBSD.org Reporter: guru@unixarea.de I installed the port devel/pcsc-litepcsc-lite: # pkg inf pcsc-lite pcsc-lite-1.8.20,2 Name : pcsc-lite Version : 1.8.20,2 Installed on : Thu May 11 08:28:06 2017 CEST Origin : devel/pcsc-lite Architecture : freebsd:12:x86:64 ... and enabled the start of the 'pcscd' with pcscd_enable="YES" in /etc/rc.conf, but this would make hang the system on startup/boot: > 25038 1 S+ 0:00,02 /bin/sh /usr/local/etc/rc.d/pcscd start > 25043 1 S+ 0:00,01 /usr/local/sbin/pcscd > 25044 1 S+ 0:00,01 /usr/local/sbin/pcscd > interestingly to note: I have the exact same system (12-CURRENT r314251 and with same ports from my own pkg repository out of poudriere) in a VBOX machine; when I start there the pcscd in foreground and with --debug it says: root@r314251-amd64:~ # /usr/local/sbin/pcscd --debug --foreground 00000000 pcscdaemon.c:346:main() pcscd set to foreground with debug send to stdout 00000516 configfile.l:358:DBGetReaderList() Parsing conf file: /usr/local/etc/reader.conf.d 00000043 pcscdaemon.c:655:main() pcsc-lite 1.8.20 daemon ready. 00010018 hotplug_libusb.c:440:HPEstablishUSBNotifications() Driver ifd-ccid.bundle does not support IFD_GENERATE_HOTPLUG. Using active polling instead. 00000124 hotplug_libusb.c:449:HPEstablishUSBNotifications() Polling forced every 1 second(s) and a truss on the PID shows that is is really polling once every second: ... openat(AT_FDCWD,"/dev/ugen1.1",O_RDWR,00) = 7 (0x7) openat(AT_FDCWD,"/dev/ugen1.1",O_RDWR,00) = 8 (0x8) ioctl(8,USB_GET_PLUGTIME,0xdfdfcddc) = 0 (0x0) ioctl(7,USB_GET_CONFIG,0xdfdfce44) = 0 (0x0) close(8) = 0 (0x0) close(7) = 0 (0x0) openat(AT_FDCWD,"/dev/ugen1.1",O_RDWR,00) = 7 (0x7) openat(AT_FDCWD,"/dev/ugen1.1",O_RDWR,00) = 8 (0x8) ... On the system in question, an Acer C720 netbook, it says only: root@c720-r314251:~ # /usr/local/sbin/pcscd --debug --foreground 00000000 pcscdaemon.c:346:main() pcscd set to foreground with debug send to stdout 00000550 configfile.l:358:DBGetReaderList() Parsing conf file: /usr/local/etc/reader.conf.d 00000049 pcscdaemon.c:655:main() pcsc-lite 1.8.20 daemon ready. i.e. the line about hotplug_libusb.c:440:HPEstablishUSBNotifications() does not show up; and a truss shows that is is doing/waiting on something on a dev; it is very slow doing some ioctls: openat(AT_FDCWD,"/dev/usbctl",O_RDONLY,00) = 11 (0xb) ioctl(11,USB_READ_DIR,0xdfdfcb38) = 0 (0x0) openat(AT_FDCWD,"/dev/ugen1.1",O_RDWR,00) = 12 (0xc) ioctl(12,USB_GET_PLUGTIME,0xdfdfcb1c) = 0 (0x0) ioctl(12,USB_GET_DEVICE_DESC,0xdfdfcb20) = 0 (0x0) ioctl(12,USB_GET_DEVICEINFO,0xdfdfccb0) = 0 (0x0) I will attach a ktrace/kdump output which shows that the problem is caused by *very* slow sys calls on the USB bus. -- You are receiving this mail because: You are the assignee for the bug.help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-219220-17>
