Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755149Ab3HBQaU (ORCPT ); Fri, 2 Aug 2013 12:30:20 -0400 Received: from mail-wi0-f177.google.com ([209.85.212.177]:50338 "EHLO mail-wi0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754798Ab3HBQaI (ORCPT ); Fri, 2 Aug 2013 12:30:08 -0400 From: Frederic Weisbecker To: Peter Zijlstra , Jiri Olsa Cc: LKML , Frederic Weisbecker , Steven Rostedt , "Paul E. McKenney" , Ingo Molnar , Thomas Gleixner , Borislav Petkov , Li Zhong , Mike Galbraith , Kevin Hilman Subject: [PATCH 3/3] nohz: Include local CPU in full dynticks global kick Date: Fri, 2 Aug 2013 18:29:56 +0200 Message-Id: <1375460996-16329-4-git-send-email-fweisbec@gmail.com> X-Mailer: git-send-email 1.7.5.4 In-Reply-To: <1375460996-16329-1-git-send-email-fweisbec@gmail.com> References: <1375460996-16329-1-git-send-email-fweisbec@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1731 Lines: 49 tick_nohz_full_kick_all() is useful to notify all full dynticks CPUs that there is a system state change to checkout before re-evaluating the need for the tick. Unfortunately this is implemented using smp_call_function_many() that ignores the local CPU. This CPU also needs to re-evaluate the tick. on_each_cpu_mask() is not useful either because we don't want to re-evaluate the tick state in place but asynchronously from an IPI to avoid messing up with any random locking scenario. Sol lets call tick_nohz_full_kick() from tick_nohz_full_kick_all() so that the usual irq work takes care of it. Signed-off-by: Frederic Weisbecker Cc: Steven Rostedt Cc: Paul E. McKenney Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Peter Zijlstra Cc: Borislav Petkov Cc: Li Zhong Cc: Mike Galbraith Cc: Kevin Hilman --- kernel/time/tick-sched.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index e80183f..30849d4 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -244,6 +244,7 @@ void tick_nohz_full_kick_all(void) preempt_disable(); smp_call_function_many(nohz_full_mask, nohz_full_kick_ipi, NULL, false); + tick_nohz_full_kick(); preempt_enable(); } -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/