https://bugzilla.kernel.org/show_bug.cgi?id=199245
Bug ID: 199245
Summary: Reduce time in `acpi_init()` on Lenovo X60
Product: ACPI
Version: 2.5
Kernel Version: 4.16-rc7
Hardware: All
OS: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: EC
Assignee: [email protected]
Reporter: [email protected]
Regression: No
Created attachment 274997
--> https://bugzilla.kernel.org/attachment.cgi?id=274997&action=edit
Linux 4.16-rc7 messages with `initcall_debug`
The goal is to make the Linux kernel to start up as fast as possible on a
Lenovo X60 with coreboot and SeaBIOS, so that the LUKS passphrase dialog can be
shown more or less instantly.
With Linux 4.16-rc7, according to `initcall_debug`, `acpi_init()` takes around
54 ms to execute.
```
[ 0.040388] calling acpi_init+0x0/0x34b @ 1
[ 0.040388] ACPI: Added _OSI(Module Device)
[ 0.040388] ACPI: Added _OSI(Processor Device)
[ 0.040388] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 0.040388] ACPI: Added _OSI(Processor Aggregator Device)
[ 0.040449] ACPI: Executed 1 blocks of module-level executable AML code
[ 0.042506] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[ 0.046457] ACPI: EC: EC started
[ 0.046464] ACPI: EC: interrupt blocked
[ 0.046665] ACPI: \_SB_.PCI0.LPCB.EC__: Used as first EC
[ 0.046673] ACPI: \_SB_.PCI0.LPCB.EC__: GPE=0x1c, EC_CMD/EC_SC=0x66,
EC_DATA=0x62
[ 0.046683] ACPI: \_SB_.PCI0.LPCB.EC__: Used as boot DSDT EC to handle
transactions
[ 0.046690] ACPI: Interpreter enabled
[ 0.046739] ACPI: (supports S0 S3 S4 S5)
[ 0.046745] ACPI: Using IOAPIC for interrupt routing
[ 0.046800] PCI: Using host bridge windows from ACPI; if necessary, use
"pci=nocrs" and report a bug
[ 0.047213] ACPI: Enabled 1 GPEs in block 00 to 1F
[ 0.061357] acpi ACPI0003:01: ACPI dock station (docks/bays count: 1)
[ 0.061573] ACPI: Power Resource [FPWR] (off)
[ 0.062391] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[ 0.062406] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM
Segments MSI]
[ 0.062607] acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug PME AER
PCIeCapability]
[ 0.062622] acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus
00-3f] only partially covers this bridge
[ 0.062753] acpi PNP0A08:00: ignoring host bridge window [mem
0x000c4000-0x000c7fff window] (conflicts with Video ROM [mem
0x000c0000-0x000c6bff])
[ 0.063254] PCI host bridge to bus 0000:00
[ 0.063264] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window]
[ 0.063272] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window]
[ 0.063280] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff
window]
[ 0.063289] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000c3fff
window]
[ 0.063299] pci_bus 0000:00: root bus resource [mem 0x000c8000-0x000cbfff
window]
[ 0.063308] pci_bus 0000:00: root bus resource [mem 0x000cc000-0x000cffff
window]
[ 0.063317] pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000d3fff
window]
[ 0.063326] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff
window]
[ 0.063336] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff
window]
[ 0.063345] pci_bus 0000:00: root bus resource [mem 0x000dc000-0x000dffff
window]
[ 0.063354] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000e3fff
window]
[ 0.063363] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff
window]
[ 0.063372] pci_bus 0000:00: root bus resource [mem 0x000e8000-0x000ebfff
window]
[ 0.063382] pci_bus 0000:00: root bus resource [mem 0x000ec000-0x000effff
window]
[ 0.063391] pci_bus 0000:00: root bus resource [mem 0x000f0000-0x000fffff
window]
[ 0.063400] pci_bus 0000:00: root bus resource [mem 0x80000000-0xfebfffff
window]
[ 0.063410] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed44fff
window]
[ 0.063419] pci_bus 0000:00: root bus resource [bus 00-ff]
[ 0.063441] pci 0000:00:00.0: [8086:27a0] type 00 class 0x060000
[ 0.063681] pci 0000:00:02.0: [8086:27a2] type 00 class 0x030000
[ 0.063699] pci 0000:00:02.0: reg 0x10: [mem 0xe4300000-0xe437ffff]
[ 0.063707] pci 0000:00:02.0: reg 0x14: [io 0x50b0-0x50b7]
[ 0.063716] pci 0000:00:02.0: reg 0x18: [mem 0xd0000000-0xdfffffff pref]
[ 0.063724] pci 0000:00:02.0: reg 0x1c: [mem 0xe4400000-0xe443ffff]
[ 0.063937] pci 0000:00:02.1: [8086:27a6] type 00 class 0x038000
[ 0.063953] pci 0000:00:02.1: reg 0x10: [mem 0xe4380000-0xe43fffff]
[ 0.064241] pci 0000:00:1b.0: [8086:27d8] type 00 class 0x040300
[ 0.064278] pci 0000:00:1b.0: reg 0x10: [mem 0xe4440000-0xe4443fff 64bit]
[ 0.064404] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[ 0.064615] pci 0000:00:1c.0: [8086:27d0] type 01 class 0x060400
[ 0.064751] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[ 0.064963] pci 0000:00:1c.1: [8086:27d2] type 01 class 0x060400
[ 0.065098] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[ 0.065311] pci 0000:00:1c.2: [8086:27d4] type 01 class 0x060400
[ 0.065437] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
[ 0.065648] pci 0000:00:1c.3: [8086:27d6] type 01 class 0x060400
[ 0.065774] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
[ 0.065988] pci 0000:00:1d.0: [8086:27c8] type 00 class 0x0c0300
[ 0.066054] pci 0000:00:1d.0: reg 0x20: [io 0x5000-0x501f]
[ 0.066277] pci 0000:00:1d.1: [8086:27c9] type 00 class 0x0c0300
[ 0.066343] pci 0000:00:1d.1: reg 0x20: [io 0x5020-0x503f]
[ 0.066566] pci 0000:00:1d.2: [8086:27ca] type 00 class 0x0c0300
[ 0.066633] pci 0000:00:1d.2: reg 0x20: [io 0x5040-0x505f]
[ 0.066854] pci 0000:00:1d.3: [8086:27cb] type 00 class 0x0c0300
[ 0.066920] pci 0000:00:1d.3: reg 0x20: [io 0x5060-0x507f]
[ 0.067153] pci 0000:00:1d.7: [8086:27cc] type 00 class 0x0c0320
[ 0.067184] pci 0000:00:1d.7: reg 0x10: [mem 0xe4444000-0xe44443ff]
[ 0.067296] pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
[ 0.067491] pci 0000:00:1e.0: [8086:2448] type 01 class 0x060401
[ 0.067768] pci 0000:00:1f.0: [8086:27b9] type 00 class 0x060100
[ 0.067900] pci 0000:00:1f.0: quirk: [io 0x0500-0x057f] claimed by ICH6
ACPI/GPIO/TCO
[ 0.067915] pci 0000:00:1f.0: quirk: [io 0x0480-0x04bf] claimed by ICH6
GPIO
[ 0.067925] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 1 PIO at 1600 (mask
007f)
[ 0.067936] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 2 PIO at 15e0 (mask
000f)
[ 0.067947] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 3 PIO at 1680 (mask
001f)
[ 0.068174] pci 0000:00:1f.1: [8086:27df] type 00 class 0x01018a
[ 0.068200] pci 0000:00:1f.1: reg 0x10: [io 0x50b8-0x50bf]
[ 0.068213] pci 0000:00:1f.1: reg 0x14: [io 0x50d8-0x50db]
[ 0.068227] pci 0000:00:1f.1: reg 0x18: [io 0x50c0-0x50c7]
[ 0.068240] pci 0000:00:1f.1: reg 0x1c: [io 0x50dc-0x50df]
[ 0.068253] pci 0000:00:1f.1: reg 0x20: [io 0x50a0-0x50af]
[ 0.068282] pci 0000:00:1f.1: legacy IDE quirk: reg 0x10: [io
0x01f0-0x01f7]
[ 0.068290] pci 0000:00:1f.1: legacy IDE quirk: reg 0x14: [io 0x03f6]
[ 0.068298] pci 0000:00:1f.1: legacy IDE quirk: reg 0x18: [io
0x0170-0x0177]
[ 0.068305] pci 0000:00:1f.1: legacy IDE quirk: reg 0x1c: [io 0x0376]
[ 0.068505] pci 0000:00:1f.2: [8086:27c5] type 00 class 0x010601
[ 0.068535] pci 0000:00:1f.2: reg 0x10: [io 0x50c8-0x50cf]
[ 0.068549] pci 0000:00:1f.2: reg 0x14: [io 0x50e0-0x50e3]
[ 0.068562] pci 0000:00:1f.2: reg 0x18: [io 0x50d0-0x50d7]
[ 0.068575] pci 0000:00:1f.2: reg 0x1c: [io 0x50e4-0x50e7]
[ 0.068589] pci 0000:00:1f.2: reg 0x20: [io 0x5080-0x508f]
[ 0.068603] pci 0000:00:1f.2: reg 0x24: [mem 0xe4445000-0xe44453ff]
[ 0.068666] pci 0000:00:1f.2: PME# supported from D3hot
[ 0.068858] pci 0000:00:1f.3: [8086:27da] type 00 class 0x0c0500
[ 0.068943] pci 0000:00:1f.3: reg 0x20: [io 0x0400-0x041f]
[ 0.069273] pci 0000:01:00.0: [8086:109a] type 00 class 0x020000
[ 0.069331] pci 0000:01:00.0: reg 0x10: [mem 0xe4100000-0xe411ffff]
[ 0.069374] pci 0000:01:00.0: reg 0x18: [io 0x4000-0x401f]
[ 0.069586] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[ 0.080044] pci 0000:00:1c.0: PCI bridge to [bus 01]
[ 0.080056] pci 0000:00:1c.0: bridge window [io 0x4000-0x4fff]
[ 0.080063] pci 0000:00:1c.0: bridge window [mem 0xe4100000-0xe41fffff]
[ 0.080208] pci 0000:02:00.0: [8086:4227] type 00 class 0x028000
[ 0.080310] pci 0000:02:00.0: reg 0x10: [mem 0xe4200000-0xe4200fff]
[ 0.080773] pci 0000:02:00.0: PME# supported from D0 D3hot
[ 0.092057] pci 0000:00:1c.1: PCI bridge to [bus 02]
[ 0.092072] pci 0000:00:1c.1: bridge window [mem 0xe4200000-0xe42fffff]
[ 0.092163] pci 0000:00:1c.2: PCI bridge to [bus 03]
[ 0.092262] pci 0000:00:1c.3: PCI bridge to [bus 04]
[ 0.092482] pci 0000:05:00.0: [1180:0476] type 02 class 0x060700
[ 0.092503] pci 0000:05:00.0: proprietary Ricoh MMC controller disabled (via
cardbus function)
[ 0.092513] pci 0000:05:00.0: MMC cards are now supported by standard SDHCI
controller
[ 0.092544] pci 0000:05:00.0: reg 0x10: [mem 0xe2000000-0xe2000fff]
[ 0.092593] pci 0000:05:00.0: supports D1 D2
[ 0.092596] pci 0000:05:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.092731] pci 0000:05:00.1: [1180:0552] type 00 class 0x0c0010
[ 0.092762] pci 0000:05:00.1: reg 0x10: [mem 0xe2001000-0xe20017ff]
[ 0.092873] pci 0000:05:00.1: supports D1 D2
[ 0.092877] pci 0000:05:00.1: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.092993] pci 0000:05:00.2: [1180:0822] type 00 class 0x080500
[ 0.093023] pci 0000:05:00.2: reg 0x10: [mem 0xe2002000-0xe20020ff]
[ 0.093132] pci 0000:05:00.2: supports D1 D2
[ 0.093136] pci 0000:05:00.2: PME# supported from D0 D1 D2 D3hot D3cold
[ 0.093310] pci 0000:00:1e.0: PCI bridge to [bus 05-06] (subtractive decode)
[ 0.093323] pci 0000:00:1e.0: bridge window [io 0x2000-0x3fff]
[ 0.093329] pci 0000:00:1e.0: bridge window [mem 0xe0000000-0xe20fffff]
[ 0.093339] pci 0000:00:1e.0: bridge window [mem 0xe2100000-0xe40fffff
64bit pref]
[ 0.093343] pci 0000:00:1e.0: bridge window [io 0x0000-0x0cf7 window]
(subtractive decode)
[ 0.093346] pci 0000:00:1e.0: bridge window [io 0x0d00-0xffff window]
(subtractive decode)
[ 0.093350] pci 0000:00:1e.0: bridge window [mem 0x000a0000-0x000bffff
window] (subtractive decode)
[ 0.093354] pci 0000:00:1e.0: bridge window [mem 0x000c0000-0x000c3fff
window] (subtractive decode)
[ 0.093357] pci 0000:00:1e.0: bridge window [mem 0x000c8000-0x000cbfff
window] (subtractive decode)
[ 0.093361] pci 0000:00:1e.0: bridge window [mem 0x000cc000-0x000cffff
window] (subtractive decode)
[ 0.093365] pci 0000:00:1e.0: bridge window [mem 0x000d0000-0x000d3fff
window] (subtractive decode)
[ 0.093368] pci 0000:00:1e.0: bridge window [mem 0x000d4000-0x000d7fff
window] (subtractive decode)
[ 0.093372] pci 0000:00:1e.0: bridge window [mem 0x000d8000-0x000dbfff
window] (subtractive decode)
[ 0.093375] pci 0000:00:1e.0: bridge window [mem 0x000dc000-0x000dffff
window] (subtractive decode)
[ 0.093379] pci 0000:00:1e.0: bridge window [mem 0x000e0000-0x000e3fff
window] (subtractive decode)
[ 0.093383] pci 0000:00:1e.0: bridge window [mem 0x000e4000-0x000e7fff
window] (subtractive decode)
[ 0.093386] pci 0000:00:1e.0: bridge window [mem 0x000e8000-0x000ebfff
window] (subtractive decode)
[ 0.093390] pci 0000:00:1e.0: bridge window [mem 0x000ec000-0x000effff
window] (subtractive decode)
[ 0.093393] pci 0000:00:1e.0: bridge window [mem 0x000f0000-0x000fffff
window] (subtractive decode)
[ 0.093397] pci 0000:00:1e.0: bridge window [mem 0x80000000-0xfebfffff
window] (subtractive decode)
[ 0.093401] pci 0000:00:1e.0: bridge window [mem 0xfed40000-0xfed44fff
window] (subtractive decode)
[ 0.093477] pci_bus 0000:06: busn_res: [bus 06] end can not be updated to 09
[ 0.093485] pci 0000:00:1e.0: bridge has subordinate 06 but max busn 09
[ 0.093532] pci_bus 0000:00: on NUMA node 0
[ 0.093790] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 10 12 14 15) *11
[ 0.093940] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 *11 12 14 15)
[ 0.094087] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 10 12 14 15) *11
[ 0.094234] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 *11 12 14 15)
[ 0.094380] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 10 12 14 15) *11
[ 0.094527] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 *11 12 14 15)
[ 0.094673] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 10 12 14 15) *11
[ 0.094820] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 *11 12 14 15)
[ 0.096965] ACPI: EC: interrupt unblocked
[ 0.096982] ACPI: EC: event unblocked
[ 0.096997] ACPI: \_SB_.PCI0.LPCB.EC__: GPE=0x1c, EC_CMD/EC_SC=0x66,
EC_DATA=0x62
[ 0.097006] ACPI: \_SB_.PCI0.LPCB.EC__: Used as boot DSDT EC to handle
transactions and events
[ 0.097065] initcall acpi_init+0x0/0x34b returned 0 after 54687 usecs
```
Around a quarter of the time, is spent in the part below.
```
[ 0.047213] ACPI: Enabled 1 GPEs in block 00 to 1F
[ 0.061357] acpi ACPI0003:01: ACPI dock station (docks/bays count: 1)
```
It’d be great to reduce this time, or move it out of the “hotpath”, for example
to do it in parallel.
Please find all Linux messages, and the output of `acpidump` attached.
--
You are receiving this mail because:
You are watching the assignee of the bug.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
acpi-bugzilla mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla