Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp3717270pxt; Tue, 10 Aug 2021 09:42:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxnPmitcbs8gSgI5JlgU6eaftP1OtrG7+RTZWoS13l63i4JFIrbhfxKoNGH2vIHHtV7y1A1 X-Received: by 2002:a05:6402:60e:: with SMTP id n14mr5909587edv.142.1628613756570; Tue, 10 Aug 2021 09:42:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628613756; cv=none; d=google.com; s=arc-20160816; b=W6sVMdgubcpJsOtr8Om05kuc69l1jDiM1IMe+bmagIt/qc2STFmR7oBzr+nTaWu4NM AC0FS3otUrLPQds3lrrgl5E8166DYoHebZrSaDeUdf1zx3/miVxDbgzj5zc7eIVW3OIB en1gzXZDN/U6LiDivHrTJoSOKicfaAgfI83QUQe8C2RSUnnvqVX5+8uw3INAvTsk6tDO BP+9Ug7wXYnphI3Wf6xf2JN1NmBdCxW2cfXNADDAuRZGNYqvBmh+2Z9PxTbzwByNHEAi ZsLHYlucDZCZyGlhKF2B/1Y2pa+XrPDaopIidNd1c53TIK4yFGdBGFaMpXG/Thi1fCj/ xNGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:references :in-reply-to:subject:to:dkim-signature:dkim-signature:from; bh=EcohOGUZfjN+n3KXHihq5kbx7jybdYSuSYnZPN00JEw=; b=Ozr4DD3d/c8VUlU07+M/bLbL8wfSp6kERc9fIlIdvow9Fo4vahboNWhxLMGgJulghi 1OxaVTpD5UncdMidH500WKc61BbjT7KumcnSIwS8uR5swSUTuxk4YPseEgVvSn3XcmuO snTi3l0rE7sBQLare6pAj5lpQ/uuwhbgp7Cxb6Q6b3UxkkhJfQM5mZRlOqezPjqQbiG0 DWYeQMme8cDAcsYkwtnRrtPfFPVMPst6tdDBPwSgteB68pFFrJ8aSKlAXur/IBFOj4h1 y8vUayW0WzXDoalJl9eH3NV50BJqH0qZJO1x6NWkz/iHClY/75hTvD+5pWteaJ4wC7tq Ij5A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=BltCCP2l; dkim=neutral (no key) header.i=@linutronix.de header.b=HaESd6KY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t7si22539217ejy.5.2021.08.10.09.42.11; Tue, 10 Aug 2021 09:42:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=BltCCP2l; dkim=neutral (no key) header.i=@linutronix.de header.b=HaESd6KY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S242172AbhHJO6g (ORCPT + 99 others); Tue, 10 Aug 2021 10:58:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42826 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242163AbhHJO6g (ORCPT ); Tue, 10 Aug 2021 10:58:36 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E3A2C0613C1 for ; Tue, 10 Aug 2021 07:58:14 -0700 (PDT) From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1628607490; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=EcohOGUZfjN+n3KXHihq5kbx7jybdYSuSYnZPN00JEw=; b=BltCCP2l+cAWSkso+YYFOztHcw47FQvZ8fK1QpHQCwU9EhwCMk0l2SidpMZHTuvywYQa3l eUli40L+0KUqmO/Buqc7UVPWTS8dzucCmWlBm/KliAcfvrjcngeIlEgcbmLw5Rp+eudWDf XDfeTtxFesdFWPYl9tGWg12C3DKjhpp8jmwKtUphVwIrIxP8gZQYbvi7iVr+epsTjHpYS7 4QBbbZ/999Y6Wexzt7VIY/QCrHCdxCm6PhKh5IbAylmSzcQb1tiAN305Gy6/bDEqJei6LS 5QXdXrlW+c+vQhlBUKTFLvaOMrQyU8cXfFltsMD7MLF8mABjYGam/DVoo6+WIw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1628607490; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=EcohOGUZfjN+n3KXHihq5kbx7jybdYSuSYnZPN00JEw=; b=HaESd6KY3PQ1In6XoQfeGtOTPgLwfYVlwgSaae5u5lsciFbfxXJ0KA141lD3+e4UdGqhAe Z7vUD+xbsmNDhjDw== To: Wang Qing , Frederic Weisbecker , Ingo Molnar , Andrew Morton , Petr Mladek , Wang Qing , Santosh Sivaraj , "Peter Zijlstra (Intel)" , linux-kernel@vger.kernel.org, Tejun Heo Subject: Re: [PATCH RFC 1/2] hrtimer: support hrtimer suspend when CPU suspend In-Reply-To: <1624352816-26450-2-git-send-email-wangqing@vivo.com> References: <1624352816-26450-1-git-send-email-wangqing@vivo.com> <1624352816-26450-2-git-send-email-wangqing@vivo.com> Date: Tue, 10 Aug 2021 16:58:10 +0200 Message-ID: <87zgtpqrct.ffs@tglx> MIME-Version: 1.0 Content-Type: text/plain Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 22 2021 at 17:06, Wang Qing wrote: > /** > diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c > index 4a66725..db34c9d > --- a/kernel/time/hrtimer.c > +++ b/kernel/time/hrtimer.c > @@ -513,7 +513,8 @@ static ktime_t __hrtimer_next_event_base(struct hrtimer_cpu_base *cpu_base, > > next = timerqueue_getnext(&base->active); > timer = container_of(next, struct hrtimer, node); > - if (timer == exclude) { > + if ((timer == exclude) || > + (tick_nohz_tick_inidle() && timer->is_suspend)) { Aside of being indented in unreadable ways, how is this supposed to be correct? If the first expiring timer is excluded what prevents the next one from being marked to stop in suspend or the other way round. What's wrong with just canceling the offending timer before going into suspend and rearming it on resume instead of adding a half baken magic case for timers? Thanks, tglx