Re: How to improve resume time of USB device on Lenovo X60t?

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

 



On Sun, 7 May 2017, Paul Menzel wrote:

> Dear Alan,
> 
> 
> Thank you for the quick response.
> 
> 
> Am Donnerstag, den 04.05.2017, 15:43 -0400 schrieb Alan Stern:
> > On Thu, 4 May 2017, Paul Menzel wrote:
> 
> > > With commit 85724edec (Merge tag 'leds_for_4.12' of
> > > git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds), 
> > > testing the resume time on a Lenovo X60t connected to the docking
> > > station with the script `analyze_suspend.py` [1][2], one USB
> > > controller(?) needs the most time with 376 ms.
> > 
> > Well, it's always going to be true that _one_ of the USB controllers
> > needs more time than the others.  :-)
> > 
> > Where do you get than 376 ms number from?  The attached graph and
> > listing show that 0000:00:1d.7 and usb5 (the PCI and USB interfaces of
> > the EHCI controller) take 18.971 ms in resume_noirq and 119.183 ms in
> > resume, for a total of 138.154 ms.
> > 
> > > > usb @ 17ef:1000 [5-6] {usb} async_device (Total Suspend: 88.202 ms Total Resume: 376.385 ms)
> > 
> > 5-6 is not the EHCI controller.  It is a USB device plugged into that 
> > controller.
> 
> I am sorry for mixing that up.
> 
> > > Around 270 ms are spent in `generic_resume [usbcore]`.
> > 
> > generic_resume doesn't do anything; it just calls usb_port_resume to do
> > the real work.
> > 
> > > Please find the compressed HTML result page attached, which was created
> > > with `sudo ./analyze_suspend.py -config config/suspend-callgraph.cfg`.
> > > 
> > > Here is some more information about the devices.
> > 
> > You didn't include any information about the 5-6 device.
> > 
> > > Can there something be done about that?
> > 
> > Hard to say without knowing anything about the device.  Or what driver 
> > it uses.
> 
> From the top of my head, no external USB device is connected. I can
> only think of the tablet functionality (Wacom(?)). Hopefully the
> information below is more useful.
> 
> ```
> $ lsusb
> Bus 001 Device 002: ID 17ef:1000 Lenovo 
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
> Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

So here the EHCI controller is on bus 1, as opposed to your earlier log 
where it was on bus 5.  The 1-6 device is the first entry on this list.

> $ journalctl -k | grep -i usb
...
> Mai 07 13:44:19 gm-debian kernel: ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
> Mai 07 13:44:19 gm-debian kernel: ehci-pci 0000:00:1d.7: new USB bus registered, assigned bus number 1
> Mai 07 13:44:19 gm-debian kernel: uhci_hcd: USB Universal Host Controller Interface driver
> Mai 07 13:44:19 gm-debian kernel: ehci-pci 0000:00:1d.7: USB 2.0 started, EHCI 1.00
> Mai 07 13:44:19 gm-debian kernel: usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
> Mai 07 13:44:19 gm-debian kernel: usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
> Mai 07 13:44:19 gm-debian kernel: usb usb1: Product: EHCI Host Controller
> Mai 07 13:44:19 gm-debian kernel: usb usb1: Manufacturer: Linux 4.11.0+ ehci_hcd
> Mai 07 13:44:19 gm-debian kernel: usb usb1: SerialNumber: 0000:00:1d.7
> Mai 07 13:44:19 gm-debian kernel: hub 1-0:1.0: USB hub found
...
> Mai 07 13:44:19 gm-debian kernel: usb 1-6: new high-speed USB device number 2 using ehci-pci
> Mai 07 13:44:19 gm-debian kernel: usb 1-6: New USB device found, idVendor=17ef, idProduct=1000
> Mai 07 13:44:19 gm-debian kernel: usb 1-6: New USB device strings: Mfr=0, Product=0, SerialNumber=0
> Mai 07 13:44:19 gm-debian kernel: hub 1-6:1.0: USB hub found

It is a hub, perhaps part of a dock since the vendor is Lenovo.  If you
want to see why it takes so long to resume, a usbmon trace of the EHCI
bus during the suspend/resume transition would be helpful (see
Documentation/usb/usbmon.txt).

Alan Stern

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



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

  Powered by Linux