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