From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752879AbdHTJZ0 (ORCPT ); Sun, 20 Aug 2017 05:25:26 -0400 Received: from mail-pg0-f65.google.com ([74.125.83.65]:38074 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752843AbdHTJZY (ORCPT ); Sun, 20 Aug 2017 05:25:24 -0400 From: Nicholas Piggin To: Peter Zijlstra , Ingo Molnar Cc: Nicholas Piggin , linux-kernel@vger.kernel.org Subject: [PATCH 2/2] sched/idle: Use spin loop primitives for polling idle Date: Sun, 20 Aug 2017 19:25:02 +1000 Message-Id: <20170820092502.6812-3-npiggin@gmail.com> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170820092502.6812-1-npiggin@gmail.com> References: <20170820092502.6812-1-npiggin@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Signed-off-by: Nicholas Piggin --- kernel/sched/idle.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c index 6c23e30c0e5c..b884980da8ef 100644 --- a/kernel/sched/idle.c +++ b/kernel/sched/idle.c @@ -11,6 +11,7 @@ #include #include #include +#include #include @@ -64,9 +65,13 @@ static noinline int __cpuidle cpu_idle_poll(void) trace_cpu_idle_rcuidle(0, smp_processor_id()); local_irq_enable(); stop_critical_timings(); + + spin_begin(); while (!tif_need_resched() && (cpu_idle_force_poll || tick_check_broadcast_expired())) - cpu_relax(); + spin_cpu_relax(); + spin_end(); + start_critical_timings(); trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id()); rcu_idle_exit(); -- 2.13.3