2

I've noticed an error from dmesg output that ubuntu canot enable ASPM:

[    0.192722]  pci0000:00: ACPI _OSC support notification failed, disabling PCIe ASPM
[    0.192728]  pci0000:00: Unable to request _OSC control (_OSC support mask: 0x08)

While I know that this is not a bug, I'd like to ask if there is a way to correct it and enable ASPM, the reason being that it should increase battery life (powertop shows that PCIe is always 100% on).

Edit: I am running on an ASUS eee pc 1015px with the latest bios version (1401)

1
  • Please edit the question to include hardware details, e.g., brand & model number of laptop. Also, BIOS version.
    – derobert
    Nov 13, 2012 at 16:55

1 Answer 1

6

I'm pasting this in from my blog (plus some changes) as it add some context to this question.

PCI Express based serial linked devices can be managed by Active State Power Management (ASPM) to extend battery life on mobile devices such as laptops and netbooks. ASPM is a power management protocol that allows an operating system's power management to place the link physical layer into a low power mode and it has the ability to instruct other devices on the link to go into a lower power mode too.

The plus side is that we save power with ASPM, however, it will introduce some latency as the bus needs time to be woken up when in a low power state. The PCIe specification (version 2.0) defines two power modes:

  • L0s, which set low power mode in in direction on the link (usually from the physical link layer controller downstream)

  • L1, which sets low power mode in both directions on the link, however there is greater wakeup latency.

Unfortunately it seems that your firmware is indicating to the kernel that it really does not support ASPM on your hardware. The kernel has queried the firmware using the ACPI _OSC control to see if ASPM is supported and it is informed it is not supported, so ASPM is disabled. The reasons for this being disabled are vendor specific. It may be because on Windows somethings just hang or are unreliable with ASPM enabled so the firmware disables it completely.

Linux also provides some ASPM driver kernel parameters to allow some level of tweakability. The following kernel parameters can be used:

disable ASPM:

pcie_aspm=off

use default firmware configuration:

pcie_aspm=default

disables ASPM and clock power management:

pcie_aspm=performance

highest power saving mode, enable ASPM and clock power management:

pcie_aspm=powersave

force ASPM on:

pcie_aspm=force

You may wish to tinker with the last setting to see if you can override the default ASPM settings.

1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .