Re: [PATCH v1 6/9] ACPI: processor: idle: Do not change power states if get power info failed
From: Rafael J. Wysocki
Date: Mon Oct 27 2025 - 08:42:14 EST
On Mon, Oct 27, 2025 at 4:01 AM lihuisong (C) <lihuisong@xxxxxxxxxx> wrote:
>
>
> 在 2025/10/26 20:34, Rafael J. Wysocki 写道:
> > On Fri, Oct 24, 2025 at 11:10 AM lihuisong (C) <lihuisong@xxxxxxxxxx> wrote:
> >>
> >> 在 2025/10/22 3:49, Rafael J. Wysocki 写道:
> >>> On Mon, Sep 29, 2025 at 11:38 AM Huisong Li <lihuisong@xxxxxxxxxx> wrote:
> >>>> Driver will update power states when processor power states have been
> >>>> changed. To prevent any other abnormal issues, here add the verification
> >>>> for the result of getting power information, don't change power states
> >>>> and one error log when get power information failed.
> >>> But the old states may not be usable any more in that case.
> >> Yes
> >>> If you want to check the acpi_processor_get_power_info(), it should
> >>> disable ACPi idle entirely on failures.
> >> From the modification of this patch, this cpuidle device will be
> >> disabled if the acpi_processor_get_power_info()fails to get on this device.
> >> And the cpuidle of the device will be disabled according to the
> >> definition of cpuidle_not_available().
> >> We should not call disable_cpuidle() to disable cpuidle of all CPUs.
> > Since the same idle state data is used for all CPUs, I'd say cpuidle
> Yes.
> From the current implementation perspective, the idle state is
> initialized by the first available CPU.
> If there is one CPU get power management information failed later, the
> ACPI idle driver doesn't disable cpuidle of all CPUs and
> just doesn't register cpudile_device and enable cpuidle_device.
> > should be disabled for all of them in that case.
> I can understand this. I think it is reasonable.
> What do you think how to disable cpuidle of all CPUs here?
> How about call disable_cpuidle() and disable all cpuidle devices?
> >
> > Alternatively, check if it works for any of them and apply the data
> > from the CPU where it works to all of them. If it doesn't work for
> > any of them, there's nothing to apply.
>
> How should we check if the idle states can work to all of CPUs?
I mean if there is a CPU with a valid list of idle states, that list
can be used for all of the other CPUs.