Re: msleep(1000) in pciehp_ctrl.c makes laptop boot slow

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

 



Phil Endecott wrote:
> Dear Experts,
> 
> Some of you may have heard about Arjan van de Ven and Auke Kok's work
> to get an ASUS EEE 901 to boot in 5 seconds.  I'm trying to achieve
> something similar on my own '901.
> 
> One of the things that Arjan and Auke didn't do in their startup was
> wireless networking.  This can be switched on and off using a special
> key combination, and uses pcie hotplug.  I'm not entirely certain how
> it all hangs together, but what seems to work is loading pciehp either
> as a module or built in to the kernel, and setting pciehp_force=1.
> This is functional, but very slow because of at least one msleep(1000)
> in pciehp_ctrl.c.  Arjan & Auke boot their kernel in less than a second,
> but mine spends does about four of these 1-second waits :-(
> 
> So, what can I do about this?  I am a bit suspicious of the pciehp_force
> parameter; what is it supposed to do?  I only need hotplugging on this
> one device; can I avoid these delays for initialisation associated with
> other PCI devices that cannot be hot-unplugged?  Can the 1 second delay
> safely be reduced?  Can it be made to occur concurrently with other
> activity?

If your platform allows hotplug using OS native hotplug driver (pciehp
in Linux) to handle hotplug slots, you don't need pciehp_force. The
pciehp_force parameter is supposed to be used only for testing purpose
if you want pciehp to handle hotplug slots even though your platform
doesn't allow hotplug using OS native hotplug driver.

Thanks,
Kenji Kaneshige



> 
> Any suggestions would be much appreciated.  A fragment from my dmesg
> output follows; note the points where the timestamp suddenly jumps by
> 1 second.
> 
> Regards,  Phil.
> 
> 
> [    1.300586] calling  pci_proc_init+0x0/0x55 @ 1
> [    1.300673] initcall pci_proc_init+0x0/0x55 returned 0 after 0 msecs
> [    1.300679] calling  pcie_portdrv_init+0x0/0x3b @ 1
> [    1.300824] pcieport-driver 0000:00:1c.0: setting latency timer to 64
> [    1.300881] pcieport-driver 0000:00:1c.0: found MSI capability
> [    1.300938] pci_express 0000:00:1c.0:pcie00: allocate port service
> [    1.301049] pci_express 0000:00:1c.0:pcie02: allocate port service
> [    1.301141] pci_express 0000:00:1c.0:pcie03: allocate port service
> [    1.301316] pcieport-driver 0000:00:1c.1: setting latency timer to 64
> [    1.301368] pcieport-driver 0000:00:1c.1: found MSI capability
> [    1.301420] pci_express 0000:00:1c.1:pcie00: allocate port service
> [    1.301506] pci_express 0000:00:1c.1:pcie02: allocate port service
> [    1.301601] pci_express 0000:00:1c.1:pcie03: allocate port service
> [    1.301773] pcieport-driver 0000:00:1c.2: setting latency timer to 64
> [    1.301825] pcieport-driver 0000:00:1c.2: found MSI capability
> [    1.301877] pci_express 0000:00:1c.2:pcie00: allocate port service
> [    1.301964] pci_express 0000:00:1c.2:pcie02: allocate port service
> [    1.302056] pci_express 0000:00:1c.2:pcie03: allocate port service
> [    1.302230] pcieport-driver 0000:00:1c.3: setting latency timer to 64
> [    1.302282] pcieport-driver 0000:00:1c.3: found MSI capability
> [    1.302333] pci_express 0000:00:1c.3:pcie00: allocate port service
> [    1.302420] pci_express 0000:00:1c.3:pcie02: allocate port service
> [    1.302514] pci_express 0000:00:1c.3:pcie03: allocate port service
> [    1.302759] initcall pcie_portdrv_init+0x0/0x3b returned 0 after 1 msecs
> [    1.302769] calling  aer_service_init+0x0/0x19 @ 1
> [    1.302857] initcall aer_service_init+0x0/0x19 returned 0 after 0 msecs
> [    1.302866] calling  pci_hotplug_init+0x0/0x14 @ 1
> [    1.302871] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
> [    1.302879] initcall pci_hotplug_init+0x0/0x14 returned 0 after 0 msecs
> [    1.302886] calling  acpiphp_init+0x0/0x4e @ 1
> [    1.302889] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
> [    1.306138] initcall acpiphp_init+0x0/0x4e returned -19 after 3 msecs
> [    1.306145] calling  pcied_init+0x0/0x62 @ 1
> [    1.306166] pciehp: Bypassing BIOS check for pciehp use on 0000:00:1c.0
> [    1.306180] pciehp: Hotplug Controller:
> [    1.306183] pciehp:   Seg/Bus/Dev/Func/IRQ : 0000:00:1c.0 IRQ 223
> [    1.306188] pciehp:   Vendor ID            : 0x8086
> [    1.306191] pciehp:   Device ID            : 0x27d0
> [    1.306195] pciehp:   Subsystem ID         : 0x0000
> [    1.306199] pciehp:   Subsystem Vendor ID  : 0x0000
> [    1.306202] pciehp:   PCIe Cap offset      : 0x40
> [    1.306206] pciehp: Slot Capabilities      : 0x00000060
> [    1.306210] pciehp:   Physical Slot Number : 0
> [    1.306214] pciehp:   Attention Button     :  no
> [    1.306217] pciehp:   Power Controller     :  no
> [    1.306220] pciehp:   MRL Sensor           :  no
> [    1.306224] pciehp:   Attention Indicator  :  no
> [    1.306227] pciehp:   Power Indicator      :  no
> [    1.306232] pciehp:   Hot-Plug Surprise    : yes
> [    1.306236] pciehp:   EMI Present          :  no
> [    1.306239] pciehp:   Command Completed    : yes
> [    1.306250] pciehp: Slot Status            : 0x0000
> [    1.306260] pciehp: Slot Control           : 0x0000
> [    1.306343] pciehp: HPC vendor_id 8086 device_id 27d0 ss_vid 0 ss_did 0
> [    1.306392] pciehp: get_power_status - physical_slot = 0
> [    1.306403] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
> [    1.306408] pciehp: get_attention_status - physical_slot = 0
> [    1.306419] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
> [    1.306423] pciehp: get_latch_status - physical_slot = 0
> [    1.306434] pciehp: get_adapter_status - physical_slot = 0
> [    1.306446] pciehp: Registering bus=5 dev=0 hp_slot=0 sun=0 
> slot_device_offset=0
> [    1.306557] hpdriver 0000:00:1c.0:pcie02: service driver hpdriver loaded
> [    1.306570] pciehp: Bypassing BIOS check for pciehp use on 0000:00:1c.1
> [    1.306582] pciehp: Hotplug Controller:
> [    1.306585] pciehp:   Seg/Bus/Dev/Func/IRQ : 0000:00:1c.1 IRQ 222
> [    1.306589] pciehp:   Vendor ID            : 0x8086
> [    1.306593] pciehp:   Device ID            : 0x27d2
> [    1.306597] pciehp:   Subsystem ID         : 0x0000
> [    1.306600] pciehp:   Subsystem Vendor ID  : 0x0000
> [    1.306604] pciehp:   PCIe Cap offset      : 0x40
> [    1.306608] pciehp:   PCI resource [7]     : 0x1000@0xe000
> [    1.306613] pciehp:   PCI resource [8]     : 0x4000000@0xf8000000
> [    1.306618] pciehp:   PCI resource [9]     : 0x7000000@0xf0000000
> [    1.306622] pciehp: Slot Capabilities      : 0x00000060
> [    1.306625] pciehp:   Physical Slot Number : 0
> [    1.306629] pciehp:   Attention Button     :  no
> [    1.306632] pciehp:   Power Controller     :  no
> [    1.306636] pciehp:   MRL Sensor           :  no
> [    1.306639] pciehp:   Attention Indicator  :  no
> [    1.306642] pciehp:   Power Indicator      :  no
> [    1.306646] pciehp:   Hot-Plug Surprise    : yes
> [    1.306649] pciehp:   EMI Present          :  no
> [    1.306652] pciehp:   Command Completed    : yes
> [    1.306663] pciehp: Slot Status            : 0x0148
> [    1.306673] pciehp: Slot Control           : 0x0000
> [    1.306694] pciehp: HPC vendor_id 8086 device_id 27d2 ss_vid 0 ss_did 0
> [    1.306733] pciehp: get_power_status - physical_slot = 0
> [    1.306744] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
> [    1.306748] pciehp: get_attention_status - physical_slot = 0
> [    1.306759] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
> [    1.306764] pciehp: get_latch_status - physical_slot = 0
> [    1.306774] pciehp: get_adapter_status - physical_slot = 0
> [    1.306785] pciehp: Registering bus=3 dev=0 hp_slot=0 sun=0 
> slot_device_offset=0
> [    1.306899] pciehp: board_added: slot device, slot offset, hp slot = 
> 0, 0 ,0
> [    2.308028] pciehp: hpc_check_lnk_status: lnk_status = 3011
> [    2.308040] pciehp: Device 0000:03:00.0 already exists at 3:0, cannot 
> hot-add
> [    2.308112] pciehp: Cannot add device 0x3:0
> [    3.312037] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
> [    3.312048] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
> [    3.312068] hpdriver 0000:00:1c.1:pcie02: service driver hpdriver loaded
> [    3.312085] pciehp: Bypassing BIOS check for pciehp use on 0000:00:1c.2
> [    3.312097] pciehp: Hotplug Controller:
> [    3.312101] pciehp:   Seg/Bus/Dev/Func/IRQ : 0000:00:1c.2 IRQ 221
> [    3.312105] pciehp:   Vendor ID            : 0x8086
> [    3.312109] pciehp:   Device ID            : 0x27d4
> [    3.312112] pciehp:   Subsystem ID         : 0x0000
> [    3.312116] pciehp:   Subsystem Vendor ID  : 0x0000
> [    3.312120] pciehp:   PCIe Cap offset      : 0x40
> [    3.312124] pciehp: Slot Capabilities      : 0x00000060
> [    3.312128] pciehp:   Physical Slot Number : 0
> [    3.312131] pciehp:   Attention Button     :  no
> [    3.312134] pciehp:   Power Controller     :  no
> [    3.312138] pciehp:   MRL Sensor           :  no
> [    3.312141] pciehp:   Attention Indicator  :  no
> [    3.312145] pciehp:   Power Indicator      :  no
> [    3.312148] pciehp:   Hot-Plug Surprise    : yes
> [    3.312151] pciehp:   EMI Present          :  no
> [    3.312155] pciehp:   Command Completed    : yes
> [    3.312165] pciehp: Slot Status            : 0x0000
> [    3.312175] pciehp: Slot Control           : 0x0000
> [    3.312197] pciehp: HPC vendor_id 8086 device_id 27d4 ss_vid 0 ss_did 0
> [    3.312239] pciehp: get_power_status - physical_slot = 0
> [    3.312250] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
> [    3.312254] pciehp: get_attention_status - physical_slot = 0
> [    3.312265] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
> [    3.312270] pciehp: get_latch_status - physical_slot = 0
> [    3.312280] pciehp: get_adapter_status - physical_slot = 0
> [    3.312291] pciehp: Registering bus=2 dev=0 hp_slot=0 sun=0 
> slot_device_offset=0
> [    3.312405] hpdriver 0000:00:1c.2:pcie02: service driver hpdriver loaded
> [    3.312423] pciehp: Bypassing BIOS check for pciehp use on 0000:00:1c.3
> [    3.312440] pciehp: Hotplug Controller:
> [    3.312444] pciehp:   Seg/Bus/Dev/Func/IRQ : 0000:00:1c.3 IRQ 220
> [    3.312448] pciehp:   Vendor ID            : 0x8086
> [    3.312452] pciehp:   Device ID            : 0x27d6
> [    3.312455] pciehp:   Subsystem ID         : 0x0000
> [    3.312459] pciehp:   Subsystem Vendor ID  : 0x0000
> [    3.312463] pciehp:   PCIe Cap offset      : 0x40
> [    3.312467] pciehp:   PCI resource [8]     : 0x100000@0xf7f00000
> [    3.312471] pciehp: Slot Capabilities      : 0x00000060
> [    3.312475] pciehp:   Physical Slot Number : 0
> [    3.312478] pciehp:   Attention Button     :  no
> [    3.312482] pciehp:   Power Controller     :  no
> [    3.312485] pciehp:   MRL Sensor           :  no
> [    3.312488] pciehp:   Attention Indicator  :  no
> [    3.312492] pciehp:   Power Indicator      :  no
> [    3.312495] pciehp:   Hot-Plug Surprise    : yes
> [    3.312499] pciehp:   EMI Present          :  no
> [    3.312502] pciehp:   Command Completed    : yes
> [    3.312512] pciehp: Slot Status            : 0x0148
> [    3.312523] pciehp: Slot Control           : 0x0000
> [    3.312544] pciehp: HPC vendor_id 8086 device_id 27d6 ss_vid 0 ss_did 0
> [    3.312585] pciehp: get_power_status - physical_slot = 0
> [    3.312596] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
> [    3.312600] pciehp: get_attention_status - physical_slot = 0
> [    3.312611] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
> [    3.312615] pciehp: get_latch_status - physical_slot = 0
> [    3.312626] pciehp: get_adapter_status - physical_slot = 0
> [    3.312637] pciehp: Registering bus=1 dev=0 hp_slot=0 sun=0 
> slot_device_offset=0
> [    3.312755] pciehp: board_added: slot device, slot offset, hp slot = 
> 0, 0 ,0
> [    4.316027] pciehp: hpc_check_lnk_status: lnk_status = 3011
> [    4.316040] pciehp: Device 0000:01:00.0 already exists at 1:0, cannot 
> hot-add
> [    4.316107] pciehp: Cannot add device 0x1:0
> [    5.320037] pciehp: hpc_get_power_status: SLOTCTRL 58 value read 38
> [    5.320048] pciehp: hpc_get_attention_status: SLOTCTRL 58, value read 38
> [    5.320067] hpdriver 0000:00:1c.3:pcie02: service driver hpdriver loaded
> [    5.320162] pciehp: pcie_port_service_register = 0
> [    5.320168] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
> [    5.320181] initcall pcied_init+0x0/0x62 returned 0 after 3828 msecs
> 
> 
> 
> 
> -- 
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 


--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux