From 8536e02e912a46aa1c100bb1f5ccdca42e4e1ad2 Mon Sep 17 00:00:00 2001 From: Vijay Kumar Date: Fri, 21 Jul 2017 10:23:57 -0600 Subject: sparc64: Use CPU_POKE to resume idle cpu Use CPU_POKE hypervisor call to resume idle cpu if supported. Signed-off-by: Vijay Kumar Reviewed-by: Anthony Yznaga Signed-off-by: David S. Miller --- arch/sparc/kernel/process_64.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'arch/sparc/kernel/process_64.c') diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c index b96104da5bd6..44e5da405f96 100644 --- a/arch/sparc/kernel/process_64.c +++ b/arch/sparc/kernel/process_64.c @@ -77,8 +77,13 @@ void arch_cpu_idle(void) : "=&r" (pstate) : "i" (PSTATE_IE)); - if (!need_resched() && !cpu_is_offline(smp_processor_id())) + if (!need_resched() && !cpu_is_offline(smp_processor_id())) { sun4v_cpu_yield(); + /* If resumed by cpu_poke then we need to explicitly + * call scheduler_ipi(). + */ + scheduler_poke(); + } /* Re-enable interrupts. */ __asm__ __volatile__( -- cgit v1.2.3