From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751997AbdIAMY7 (ORCPT ); Fri, 1 Sep 2017 08:24:59 -0400 Received: from bombadil.infradead.org ([65.50.211.133]:37854 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751684AbdIAMY5 (ORCPT ); Fri, 1 Sep 2017 08:24:57 -0400 Date: Fri, 1 Sep 2017 14:24:54 +0200 From: Peter Zijlstra To: Nicholas Piggin Cc: Ingo Molnar , linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2] sched/idle: Use spin loop primitives for polling idle Message-ID: <20170901122454.zkrkr5b2pe7ajiuy@hirez.programming.kicks-ass.net> References: <20170820092502.6812-1-npiggin@gmail.com> <20170820092502.6812-3-npiggin@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170820092502.6812-3-npiggin@gmail.com> User-Agent: NeoMutt/20170609 (1.8.3) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Aug 20, 2017 at 07:25:02PM +1000, Nicholas Piggin wrote: > 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(); Do we want at least one tif_need_resched() check before we drop into low prio mode? > + > start_critical_timings(); > trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id()); > rcu_idle_exit(); > -- > 2.13.3 >