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

From: Petr Pavlu
Date: Wed May 10 2023 - 04:48:56 EST


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.

-- Petr