Re: [PATCH 1/3] powernv:smp: Add busy-wait loop as fall back for CPU-Hotplug

From: Nicholas Piggin
Date: Tue Mar 14 2017 - 09:31:07 EST


On Mon, 13 Mar 2017 11:31:26 +0530
"Gautham R. Shenoy" <ego@xxxxxxxxxxxxxxxxxx> wrote:

> [Changelog written with inputs from svaidy@xxxxxxxxxxxxxxxxxx]
> Signed-off-by: Gautham R. Shenoy <ego@xxxxxxxxxxxxxxxxxx>

Reviewed-by: Nicholas Piggin <npiggin@xxxxxxxxx>

> ---
> arch/powerpc/platforms/powernv/smp.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/platforms/powernv/smp.c b/arch/powerpc/platforms/powernv/smp.c
> index e39e6c4..8d5b99e 100644
> --- a/arch/powerpc/platforms/powernv/smp.c
> +++ b/arch/powerpc/platforms/powernv/smp.c
> @@ -192,8 +192,16 @@ static void pnv_smp_cpu_kill_self(void)
> } else if ((idle_states & OPAL_PM_SLEEP_ENABLED) ||
> (idle_states & OPAL_PM_SLEEP_ENABLED_ER1)) {
> srr1 = power7_sleep();
> - } else {
> + } else if (idle_states & OPAL_PM_NAP_ENABLED) {
> srr1 = power7_nap(1);
> + } else {
> + /* This is the fallback method. We emulate snooze */
> + while (!generic_check_cpu_restart(cpu)) {
> + HMT_low();
> + HMT_very_low();
> + }
> + srr1 = 0;
> + HMT_medium();
> }
>
> ppc64_runlatch_on();