Re: [PATCH v4] ACPI: cpufreq: use a platform device to load ACPI PPC and PCC drivers

From: Rafael J. Wysocki
Date: Wed May 10 2023 - 08:21:39 EST


On Wed, May 10, 2023 at 10:48 AM Petr Pavlu <petr.pavlu@xxxxxxxx> wrote:
>
> On 5/10/23 02:00, Kevin Locke wrote:
> > On Thu, 2023-03-16 at 16:10 +0100, Petr Pavlu wrote:
> >> The patch extends the ACPI parsing logic to check the ACPI namespace if
> >> the PPC or PCC interface is present and creates a virtual platform
> >> device for each if it is available. The acpi-cpufreq and pcc-cpufreq
> >> drivers are then updated to map to these devices.
> >>
> >> This allows to try loading acpi-cpufreq and pcc-cpufreq only once during
> >> boot and only if a given interface is available in the firmware.
> >
> > As a result of this patch (691a637123470bfe63bccf5836ead40fac4c7fab)
> > my ThinkPad T430 with an i5-3320M CPU configured with
> > CONFIG_X86_INTEL_PSTATE=y and CONFIG_X86_ACPI_CPUFREQ=m (Debian's
> > amd64 kernel config) now logs
> >
> > kernel: acpi-cpufreq: probe of acpi-cpufreq failed with error -17
> >
> > during boot. Presumably this occurs because loading acpi-cpufreq
> > returns -EEXIST when intel-pstate is already loaded (or built-in, as
> > in this case). I'm unsure why the message was not printed before;
> > perhaps a difference between driver probing for platform and cpu bus
> > types? Although the error message is not wrong, it may lead to
> > unnecessary investigation by sysadmins, as it did for me. I thought
> > it was worth reporting so you can consider whether the change is
> > desirable.
>
> Thanks for reporting this issue. The patch moved the setup of
> acpi-cpufreq from being done directly in its module init function to
> going through the probe logic. The reported warning newly comes from
> call_driver_probe() when the probe fails.
>
> One immediate option that I can see to silence this warning would be to
> change the return code for this case in acpi_cpufreq_probe() from
> -EEXIST to -ENODEV/ENXIO. Function call_driver_probe() then prints only
> a debug message about the probe rejecting the device.

-ENODEV, pretty please. Or I can send a patch, whichever you prefer.

It would be a better error code for this condition anyway IMV.