Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp4263809ybz; Tue, 28 Apr 2020 08:23:36 -0700 (PDT) X-Google-Smtp-Source: APiQypLsM1n4+/ay9cMBh8HtxSH7RTWdKD8GOknlldzn3197xPg/qh52Fjm/6z4PixWnEFS9mruy X-Received: by 2002:a17:906:4c8e:: with SMTP id q14mr26132035eju.208.1588087416228; Tue, 28 Apr 2020 08:23:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588087416; cv=none; d=google.com; s=arc-20160816; b=qsBxywCiH5mqCaOnZSEbsqfDH7Mz0oGaKHv4uvVwflT+ncSvOb2wlUP9j0pTLdmrVv B4Ri2Aw/5CVFZI2EAuupWhOMpwoairpLMMLxgAHx7vBARQdoYEKdF4RqzJ3yzMp1V7/L 0DlgxZb7atmb9tJiXaiAugM5Hz3KMmRjVm7+AT1d+MLGGC3gwwwMVBdVb0zAYS4NvppA b+4nRd4olOHheTEbhbnpvjTbBCsxV0RGdAdpPHfdFqSI+E7raErCniPZKRujWe1Z+lYw 0rUC/vwW2dgjmjs78WTVNsVxqOJ9TJNlzpbK8CTnYe2dAO+zLbPq+v2s4aV5rBvh0s2u 6jpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :dkim-signature; bh=DJAmUdRBPjlIokIB6Onr9RjMyRLekgsWr58f1nSDJeg=; b=Eb+Cc8/nRxOwUfpQ6yo6OtFc0ButgBObMRUdqkzzyC1FJJGarFwo9V3c80vqhYN/VF CX1fJ6Nj0DkzomeNzg5yorup7LedkunLVOK6TY+QZqwo+exNhxlEglK39e0TRSpnJu9E LWVWm+QIY016+EC44u9fyoJaofEqAaQQomeYGuyipdKG9wl4Be4s/no1834gnXed1KHY 6hNCgk5ZgZ4DWrhAzXHxgauFm80mDgg09yXEyMINx/cPEha7x4UvSpz/DLOstv/PJ9Io Y5g+rbIjhZYZjjFHGcoSilYKY7F0wYcm5xiRfF3aBvHepSGE4raDb6B1bCwAeRQ4c1vK AETA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=EA4+tttA; 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=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v28si1884049edb.497.2020.04.28.08.23.13; Tue, 28 Apr 2020 08:23: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=@kernel.org header.s=default header.b=EA4+tttA; 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=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728626AbgD1PS4 (ORCPT + 99 others); Tue, 28 Apr 2020 11:18:56 -0400 Received: from mail.kernel.org ([198.145.29.99]:37882 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728619AbgD1PSx (ORCPT ); Tue, 28 Apr 2020 11:18:53 -0400 Received: from tzanussi-mobl (c-98-220-238-81.hsd1.il.comcast.net [98.220.238.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5BD5E2186A; Tue, 28 Apr 2020 15:18:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1588087133; bh=b/zBXFGJvz7WjogAPSd0Y+ZzPKY0hHARxvv8R3hHUEw=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=EA4+tttAfKwyjtD+ShEj9VRYXd8WXJ7s0P4qoHxtBc3RVs2gastLvPr+mB0Kg0Hcx C5aaJru7EArpoREVcC61YXM/mc92dftH1wLZSdHOPUZis89rb+d9WD34HHrV57Fe/2 HFZMLRd+zAmkES+HW4pwZWnTyuYDmtfmFjDC6ODY= Message-ID: <5684baea7257bfe27960ead094fd346dae019b0a.camel@kernel.org> Subject: Re: [PATCH -rt] hrtimer: fix logic for when grabbing softirq_expiry_lock can be elided From: Tom Zanussi To: Rasmus Villemoes , linux-kernel@vger.kernel.org Cc: linux-rt-users@vger.kernel.org, Steven Rostedt , Thomas Gleixner , Carsten Emde , Sebastian Andrzej Siewior , Julien Grall , Daniel Wagner , John Kacur Date: Tue, 28 Apr 2020 10:18:50 -0500 In-Reply-To: <20200428144026.5882-1-rasmus.villemoes@prevas.dk> References: <20200428144026.5882-1-rasmus.villemoes@prevas.dk> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 2020-04-28 at 16:40 +0200, Rasmus Villemoes wrote: > Commit > > hrtimer: Add a missing bracket and hide `migration_base' on !SMP > > which is 47b6de0b7f22 in 5.2-rt and 40aae5708e7a in 4.19-rt, > inadvertently changed the logic from base != &migration_base to base > == &migration_base. > > On !CONFIG_SMP, the effect was to effectively always elide this > lock/unlock pair (since is_migration_base() is unconditionally > false), > which for me consistently causes lockups during reboot, and > reportedly > also often causes a hang during boot. > > Adding this logical negation (or, what is effectively the same thing > on !CONFIG_SMP, reverting the above commit as well as "hrtimer: > Prevent using hrtimer_grab_expiry_lock() on migration_base") fixes > that lockup. > > Fixes: 40aae5708e7a (hrtimer: Add a missing bracket and hide > `migration_base' on !SMP) # 4.19-rt > Fixes: 47b6de0b7f22 (hrtimer: Add a missing bracket and hide > `migration_base' on !SMP) # 5.2-rt > Signed-off-by: Rasmus Villemoes > --- > Something like this? I wasn't sure what Fixes: tag(s) to include, if > any. It's quite possible the same fix is needed on earlier -rt > kernels, I didn't check. > Yeah, looks good, I'll post a new update with this shortly. Thanks, Tom > kernel/time/hrtimer.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c > index e54a95de8b79..c3966c090246 100644 > --- a/kernel/time/hrtimer.c > +++ b/kernel/time/hrtimer.c > @@ -953,7 +953,7 @@ void hrtimer_grab_expiry_lock(const struct > hrtimer *timer) > { > struct hrtimer_clock_base *base = READ_ONCE(timer->base); > > - if (timer->is_soft && is_migration_base(base)) { > + if (timer->is_soft && !is_migration_base(base)) { > spin_lock(&base->cpu_base->softirq_expiry_lock); > spin_unlock(&base->cpu_base->softirq_expiry_lock); > }