On Sat, Dec 26, 2020 at 11:26 PM Heiner Kallweit <hkallweit1@xxxxxxxxx> wrote: > > On 17.11.2020 17:57, Rafael J. Wysocki wrote: > > On Tue, Nov 17, 2020 at 5:38 PM Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote: > >> > >> [+to Rafael, author of the commit you mentioned, > >> +cc Mika, Kai Heng, Lukas, linux-pm, linux-kernel] > >> > >> On Tue, Nov 17, 2020 at 04:56:09PM +0100, Heiner Kallweit wrote: > >>> More than 10 yrs ago Runtime PM was disabled per default by bb910a7040 > >>> ("PCI/PM Runtime: Make runtime PM of PCI devices inactive by default"). > >>> > >>> Reason given: "avoid breakage on systems where ACPI-based wake-up is > >>> known to fail for some devices" > >>> Unfortunately the commit message doesn't mention any affected devices > >>> or systems. > > > > Even if it did that, it wouldn't have been a full list almost for sure. > > > > We had received multiple problem reports related to that, most likely > > because the ACPI PM in BIOSes at that time was tailored for > > system-wide PM transitions only. > > > > To follow up on this discussion: > We could call pm_runtime_forbid() conditionally, e.g. with the following > condition. This would enable runtime pm per default for all non-ACPI > systems, and it uses the BIOS date as an indicator for a hopefully > not that broken ACPI implementation. However I could understand the > argument that this looks a little hacky .. > > if (IS_ENABLED(CONFIG_ACPI) && dmi_get_bios_year() <= 2016) dmi_get_bios_year() may not be a good indicator. Last time I used it caused regression, because the value changed after BIOS update. For example, my MacBook Pro is manufactured in 2011, but dmi_get_bios_year() returns 2018 with latest BIOS. Kai-Heng > > > > >>> With Runtime PM disabled e.g. the PHY on network devices may remain > >>> powered up even with no cable plugged in, affecting battery lifetime > >>> on mobile devices. Currently we have to rely on the respective distro > >>> or user to enable Runtime PM via sysfs (echo auto > power/control). > >>> Some devices work around this restriction by calling pm_runtime_allow > >>> in their probe routine, even though that's not recommended by > >>> https://www.kernel.org/doc/Documentation/power/pci.txt > >>> > >>> Disabling Runtime PM per default seems to be a big hammer, a quirk > >>> for affected devices / systems may had been better. And we still > >>> have the option to disable Runtime PM for selected devices via sysfs. > >>> > >>> So, to cut a long story short: Wouldn't it be time to remove this > >>> restriction? > >> > >> I don't know the history of this, but maybe Rafael or the others can > >> shed some light on it. > > > > The systems that had those problems 10 years ago would still have > > them, but I expect there to be more systems where runtime PM can be > > enabled by default for PCI devices without issues. > > >