Re: xHCI quirk increases module load time

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

 



On Tue, Dec 03, 2013 at 01:08:08PM -0800, Sarah Sharp wrote:
> On Tue, Dec 03, 2013 at 03:49:45PM -0500, Alan Stern wrote:
> > On Tue, 3 Dec 2013, Sarah Sharp wrote:
> > 
> > > Hi Oliver and Takashi,
> > > 
> > > In 3.12-rc5, I merged this patch from you:
> > > 
> > > commit 638298dc66ea36623dbc2757a24fc2c4ab41b016
> > > Author: Takashi Iwai <tiwai@xxxxxxx>
> > > Date:   Thu Sep 12 08:11:06 2013 +0200
> > 
> > ...
> > >     This patch introduces a new quirk, XHCI_SPURIOUS_WAKEUP, for
> > >     fixing the spurious wakeups at S5 by calling xhci_reset() in the xhci
> > >     shutdown ops as done in xhci_stop(), and setting the device to PCI D3
> > >     at shutdown and remove ops.
> > ...
> > 
> > > When testing with Intel BIOSes on Lynx Point LP systems, we found that
> > > it increases the xHCI module load time by about 100ms (load time is
> > > normally around 30ms).  Load time is increased both when the module is
> > > loaded at boot, and when the module is unloaded and reloaded with
> > > modprobe.  Measurements were taken by adding initcall_debug to the
> > > kernel boot parameters, and looking at how long it took xhci_hcd_init to
> > > return.
> > > 
> > > I'd like to avoid a 3x increase in xHCI module load time at boot.  Would
> > > it be possible to narrow the quirk down to systems with the particular
> > > BIOS installed that needs the host to be in D3 before S5?
> > 
> > If all the commit does is change the behavior when the module is
> > unloaded, why should it make any difference to the load time?  That
> > doesn't make any sense.
> 
> Yeah, it doesn't make much sense to me either.  But I can reproduce the
> behavior on my Lenovo x230 if I add the PCI ID of my Intel Panther Point
> xHCI host controller to the quirk.  Without the quirk, when I load the
> driver after boot with modprobe, xhci_init takes on average 44ms to
> complete.  With the quirk, it takes 74ms on average.  I haven't measured
> boot time too many times, but it also seems to be increased by around
> 40ms.
> 
> The patch only touches the PCI and platform remove function, adding a
> host controller reset and putting the host in D3.  Maybe on module
> reload, it takes longer to get the host into D0?  I don't see why that
> would impact module load times at boot though.

That might be true, try testing boot times from cold boot to get the
"real" time here.

greg k-h
--
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