Received: by 2002:a05:6358:16cd:b0:dc:6189:e246 with SMTP id r13csp974315rwl; Fri, 4 Nov 2022 08:24:56 -0700 (PDT) X-Google-Smtp-Source: AMsMyM73xLrjYYTw+oEqr21zwgs8CBfDPdXCLMmys38PiY1NK+AeHSlWVwdhWjHSKqsCg67dO3x6 X-Received: by 2002:aa7:d2cd:0:b0:463:23a4:aa9e with SMTP id k13-20020aa7d2cd000000b0046323a4aa9emr31655609edr.362.1667575496725; Fri, 04 Nov 2022 08:24:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667575496; cv=none; d=google.com; s=arc-20160816; b=Aq1LBuL08fHD+pCzBPkYHsP/RmoWES+Qu8yynssplVh+Aq4SdF4Gobwoty+h9PytcZ wBStFQgAqTfzT4eZqutIeM2coN7iLaaOHfDJ+OZfAeRxkd11NDMAMA2iPpXAWFlwWlc5 Jd/EESbgR4M1gdSzZxDZvRoN94+U2i7D4F2Yb6YX/elHevcJhcicWTwqJiDVcM2Bq+x/ F3jXk8pg8wcEMJDRuqEwPPpwm1Hdqk10NufO2hGR3eYWnAuznPH+1CrKtFH3m1AC1wi9 keLTMFLdg7QxZdMiJpoOsr8TSmvZdz5JScVO4D/niBWuDUXoTagnbpBxR4ubTM4C7Qgj PjHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:dkim-signature :dkim-signature:from; bh=BOCDJ0nGoVQscn5FVoqed4VCDME+xrNe/Iu7/rdK+w0=; b=jh8wyDvLojO2fxI8R0H5LbttR8+k0N6pirXYm7X9skX79fi53H2+RSOEBH60AXfoYr 8unyUMeTtKQ9txvZqyp2eAKZpo9vc6mRE8to8wk4BIS7aqSjVIUiDVXRMNjEA2pToJPd vTYQa+EpKgeCpbDFLLd7vRX3QcIm35JXpEfq+eODAOCf+uDxfUdO5cHyQFPRlAMGO6wk niS1U2PeRc+CNhPGcUuAiYFgjZF9zq/aPJ+AQvNKNVEX2k9nK8Im0S11JG4H5MumT7qJ 7dapXtiCVOEdOOSYB7WGhSU7YvtbCwja9oId6te1luXqDgRqQBOF/SB59g6Dhmebemtk cWPw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=VlCDY+iL; dkim=neutral (no key) header.i=@linutronix.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bb6-20020a1709070a0600b0078da856a4ecsi6084716ejc.391.2022.11.04.08.24.32; Fri, 04 Nov 2022 08:24:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=VlCDY+iL; dkim=neutral (no key) header.i=@linutronix.de; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232291AbiKDO6L (ORCPT + 96 others); Fri, 4 Nov 2022 10:58:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41662 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231549AbiKDO55 (ORCPT ); Fri, 4 Nov 2022 10:57:57 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3057F2EF33 for ; Fri, 4 Nov 2022 07:57:55 -0700 (PDT) From: Anna-Maria Behnsen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1667573873; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BOCDJ0nGoVQscn5FVoqed4VCDME+xrNe/Iu7/rdK+w0=; b=VlCDY+iLQ1c9Xo1HDq0mYn612Fpuhq7nD0iZqweE6V81oNaB6DPVYXlePKsWJ6PQMAPcSV PnYMxkcR/YdR2y793jGdN5YSVM5g8XRSRddtsJusdYhgOR5htE6idsk0sSvUGDkN3a5h2t sMYWhhIso3zjRlc0Fq5ZLakCM6uHmpo37uEX7JHF6HVh+jxwPQelTgHJnEei9781vejUrC 07zov+nDBNEx8sSvQyd04XnXne+yoVQnU6/Gl8ExisRc8leW9oF8Ssb5F46CYwOLaGFJAs 98EodKCY7iS3dzmpttSgSRGF/fEuZjQdL86R5rWsbXpG4PKePAQmhWitI9yH7w== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1667573873; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=BOCDJ0nGoVQscn5FVoqed4VCDME+xrNe/Iu7/rdK+w0=; b=OghQyD2QYWXdAbcVu7hxOV1er79fWzh+jW//Lpvc8U3bgXcuKperpThSfh9X+TIHUC02OK 0NfnPLt8UNMIFdAA== To: linux-kernel@vger.kernel.org Cc: Peter Zijlstra , John Stultz , Thomas Gleixner , Eric Dumazet , "Rafael J . Wysocki" , Arjan van de Ven , "Paul E . McKenney" , Frederic Weisbecker , Rik van Riel , Anna-Maria Behnsen , Frederic Weisbecker Subject: [PATCH v4 01/16] tick-sched: Warn when next tick seems to be in the past Date: Fri, 4 Nov 2022 15:57:22 +0100 Message-Id: <20221104145737.71236-2-anna-maria@linutronix.de> In-Reply-To: <20221104145737.71236-1-anna-maria@linutronix.de> References: <20221104145737.71236-1-anna-maria@linutronix.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When the next tick is in the past, the delta between basemono and the next tick gets negativ. But the next tick should never be in the past. The negative effect of a wrong next tick might be a stop of the tick and timers might expire late. To prevent expensive debugging when changing underlying code, add a WARN_ON_ONCE into this code path. Signed-off-by: Anna-Maria Behnsen Reviewed-by: Thomas Gleixner Reviewed-by: Frederic Weisbecker --- kernel/time/tick-sched.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index b0e3c9205946..7ffdc7ba19b4 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -826,6 +826,8 @@ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) * If the tick is due in the next period, keep it ticking or * force prod the timer. */ + WARN_ON_ONCE(basemono > next_tick); + delta = next_tick - basemono; if (delta <= (u64)TICK_NSEC) { /* -- 2.30.2