[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7170bbdb-1603-8aa6-144a-91ad99e6d579@infradead.org>
Date: Mon, 30 Nov 2020 08:44:54 -0800
From: Randy Dunlap <rdunlap@...radead.org>
To: Peter Zijlstra <peterz@...radead.org>,
Stephen Rothwell <sfr@...b.auug.org.au>
Cc: Linux Next Mailing List <linux-next@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
"Rafael J. Wysocki" <rafael.j.wysocki@...el.com>,
Len Brown <lenb@...nel.org>,
Jacob Pan <jacob.jun.pan@...ux.intel.com>
Subject: Re: linux-next: Tree for Nov 27 (drivers/idle/intel_idle.c)
On 11/30/20 3:54 AM, Peter Zijlstra wrote:
> On Sat, Nov 28, 2020 at 08:36:17AM +1100, Stephen Rothwell wrote:
>> Hi Randy,
>>
>> On Fri, 27 Nov 2020 07:57:32 -0800 Randy Dunlap <rdunlap@...radead.org> wrote:
>>>
>>> On 11/27/20 1:04 AM, Stephen Rothwell wrote:
>>>> Hi all,
>>>>
>>>> Changes since 20201126:
>>>>
>>>
>>> (This looks strange to me.)
>>>
>>>
>>> on i386 or x86_64:
>>>
>>> # CONFIG_ACPI is not set
>>>
>>> ../drivers/idle/intel_idle.c: In function ‘intel_idle_init_cstates_icpu’:
>>> ../drivers/idle/intel_idle.c:1510:7: error: implicit declaration of function ‘intel_idle_state_needs_timer_stop’; did you mean ‘intel_idle_init_cstates_icpu’? [-Werror=implicit-function-declaration]
>>> if (intel_idle_state_needs_timer_stop(&drv->states[drv->state_count]))
>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> intel_idle_state_needs_timer_stop() is only defined when
>> CONFIG_ACPI_PROCESSOR_CSTATE is set, but is used once where that is not
>> necessarily set. I assume CONFIG_ACPI_PROCESSOR_CSTATE is not set in
>> your config?
>
> Bah... :/
Yep, thanks.
Acked-by: Randy Dunlap <rdunlap@...radead.org> # build-tested
> diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
> index 7ee7ffe22ae3..d79335506ecd 100644
> --- a/drivers/idle/intel_idle.c
> +++ b/drivers/idle/intel_idle.c
> @@ -1140,6 +1140,20 @@ static bool __init intel_idle_max_cstate_reached(int cstate)
> return false;
> }
>
> +static bool __init intel_idle_state_needs_timer_stop(struct cpuidle_state *state)
> +{
> + unsigned long eax = flg2MWAIT(state->flags);
> +
> + if (boot_cpu_has(X86_FEATURE_ARAT))
> + return false;
> +
> + /*
> + * Switch over to one-shot tick broadcast if the target C-state
> + * is deeper than C1.
> + */
> + return !!((eax >> MWAIT_SUBSTATE_SIZE) & MWAIT_CSTATE_MASK);
> +}
> +
> #ifdef CONFIG_ACPI_PROCESSOR_CSTATE
> #include <acpi/processor.h>
>
> @@ -1210,20 +1224,6 @@ static bool __init intel_idle_acpi_cst_extract(void)
> return false;
> }
>
> -static bool __init intel_idle_state_needs_timer_stop(struct cpuidle_state *state)
> -{
> - unsigned long eax = flg2MWAIT(state->flags);
> -
> - if (boot_cpu_has(X86_FEATURE_ARAT))
> - return false;
> -
> - /*
> - * Switch over to one-shot tick broadcast if the target C-state
> - * is deeper than C1.
> - */
> - return !!((eax >> MWAIT_SUBSTATE_SIZE) & MWAIT_CSTATE_MASK);
> -}
> -
> static void __init intel_idle_init_cstates_acpi(struct cpuidle_driver *drv)
> {
> int cstate, limit = min_t(int, CPUIDLE_STATE_MAX, acpi_state_table.count);
>
--
~Randy
Powered by blists - more mailing lists