Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932701AbbFWOIJ (ORCPT ); Tue, 23 Jun 2015 10:08:09 -0400 Received: from www.linutronix.de ([62.245.132.108]:40562 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752567AbbFWOIC (ORCPT ); Tue, 23 Jun 2015 10:08:02 -0400 From: Sebastian Andrzej Siewior To: linux-kernel@vger.kernel.org Cc: Frederic Weisbecker , Peter Zijlstra , Thomas Gleixner , Sebastian Andrzej Siewior Subject: [PATCH] timer: nohz: don't disable the timer if we don't have irqwork interrupt Date: Tue, 23 Jun 2015 16:07:43 +0200 Message-Id: <1435068463-10091-1-git-send-email-bigeasy@linutronix.de> X-Mailer: git-send-email 2.1.4 X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001,URIBL_BLOCKED=0.001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1262 Lines: 38 The irq work interrupt is optional: If an architecture does not provide it then the callback will be run from update_process_times(). This does not work well for nohz_full_kick_work_func() as we learned in commit 76a33061b932 ("irq_work: Force raised irq work to run on irq work interrupt"). This patch is just a precaution to ensure that that an irq work interrupt is required and the timer callback is not enough. Signed-off-by: Sebastian Andrzej Siewior --- kernel/time/tick-sched.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index c792429e98c6..d9481bebae22 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -176,6 +176,11 @@ static bool can_stop_full_tick(void) return false; } + if (!arch_irq_work_has_interrupt()) { + trace_tick_stop(0, "missing irq work interrupt\n"); + return false; + } + /* sched_clock_tick() needs us? */ #ifdef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK /* -- 2.1.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/