From patchwork Mon Mar 24 17:01:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joel Fernandes X-Patchwork-Id: 14027544 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2060.outbound.protection.outlook.com [40.107.92.60]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 12A3B2641ED; Mon, 24 Mar 2025 17:02:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.60 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742835735; cv=fail; b=X+re5nl3k0SpD1ByanJ8WAz6MGmHIF2SIspwzMOiDYQ0Rp/94T33y7WmEm6Fh+wT7WLk/GlXSzpkxun5reTrbXGmc0fRgTT85v15zwUcsBD7gg+Sge1O5BKBsdYj9XETfiyL/94v3NykJV0Kxk/JXkyzRoDGcDTjgGQ+JPn5Urc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742835735; c=relaxed/simple; bh=5sNPr6B7gw2ZJeLq3gbXWYUpWMAZ/qUryfXlL0pjCd4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Ocs7YiOXE9kkDFuhCrFC5+SdFCDcVLq6vSFArnILHvj92F7Aq5CyCAgGeUN8FdhGnYlH2V5pGNL13jrgZQv+V9YLGVAAvpYSppaSzoZtmqspl2VTL4JkS7B7IDlRhJTdqFkJ3yagmFxCtAhCBx4BVp9KPyXWDbKzMwvDkD1I6YA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=pEVSJFBm; arc=fail smtp.client-ip=40.107.92.60 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="pEVSJFBm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MR+amqCVnw3BgpMWgoLwMD7qb/S5S8Mx1c8iNIBRlP6dIVENFnsTSC5vl1g0aI4M02sgIzrNO16NAQI7aHq+3GduuCkcOfoSnggt34MYPgLJp27DC8EcVz0mJAEjlpkGxFaBmKDTRGru8XWnfja7sQnfYMFj/QSm3tPlsMEdWedGu0JLWE6xczhfHXYHUuunO44gCk7ynXzPjTWsx7I3m7zZ6JpNORbMaZOAi23/1ml1LstiKTw5hlQlrzXI/NdBTVxRRDTK0ns6tch1CPjH+agFg3Kzf3QTvDRj5k83mN1S27AHnOySbehR5kROPUpZukzxRn21IIpXJyRhgKivkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5xGaF/7vMP9LBdKnBUf9531hTdCVZWmk0wz7XGueDRc=; b=uFvh+jF8pvXT2eA6aCe8QktCrIW3a+/nl3meOUpN7KgOsUmSkroSr+8FSY0fN0R8aF2PrX82L5dZ/JHwJDL1htGCbeXW9/r3t/t+kaVuMMpr6AkLSGQSjZtqhM+JjV4AnYQM0r91oydYrdkpVaSF3eoHjuDcqwuYUKhiqqsAE6IvlAM1c9YH6L4EUiN7vzg17rU1uLsel6SR/zKvdt17VPIR+o7hZQcbd0t1VCagaCbeZEustq4tBDz1sIi/45JFSXSSQDb4fg7qbwEUTp4Xg/9Jakjlau1cjXsSLWkXTp3bD5Vf+hgqwJ3RwQHy8sw28JqXhAkv2M9XoUCU6qAyjw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5xGaF/7vMP9LBdKnBUf9531hTdCVZWmk0wz7XGueDRc=; b=pEVSJFBmCYvpA9At+4OCYjmmr/zVhGXsksbFYgG4OmsBKhLSCd6NOgrXm/JR+nq3pwJv1Qgelw4mRWU3RPq8MDsOaxOjq+NRBP1kN1DmWSluxoXmWNorEJc8wjq0XgpO3pZtgmFdO4lLQXvNwBfYWid6bFM3KUASmOEpMeInPDPAJs/ERuBVTF3tS/B+0e2QVIK9NHSNOzeeBLnZ9p/GLkA572h4IF9YsRARRplSO0R8lR/HiTPknQaSHQbzGBydJOQJmuhh4Rqvfg33z+gt8fWN5Degt2YrTdbTlLYo/iq2IT+tU7zAb3gvVJm9kH81pZN71L8nbx/h6wiUro6zPw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by IA1PR12MB9061.namprd12.prod.outlook.com (2603:10b6:208:3ab::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.42; Mon, 24 Mar 2025 17:02:11 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%4]) with mapi id 15.20.8534.040; Mon, 24 Mar 2025 17:02:11 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org, "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang Cc: Joel Fernandes , rcu@vger.kernel.org Subject: [PATCH 2/3] rcu: Add warning to ensure rcu_seq_done_exact() is working Date: Mon, 24 Mar 2025 13:01:54 -0400 Message-ID: <20250324170156.469763-3-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250324170156.469763-1-joelagnelf@nvidia.com> References: <20250324170156.469763-1-joelagnelf@nvidia.com> X-ClientProxiedBy: BN0PR04CA0061.namprd04.prod.outlook.com (2603:10b6:408:ea::6) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) Precedence: bulk X-Mailing-List: rcu@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR12MB8059:EE_|IA1PR12MB9061:EE_ X-MS-Office365-Filtering-Correlation-Id: afee31f9-1865-42df-4aa0-08dd6af59e29 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024|921020; X-Microsoft-Antispam-Message-Info: QP350wDlGJrmgIDHiMWAUdEBj0dRY/cnC3rMjPgQLxNacctTR34+/oL2imNlknXQ2jzeZiuDZENkznsUc6IU6OjBjqLl5QL7o1dheV5oOGaNLh18Sw7iEV8eb11GE2Ag0p2rO0IxDXlLSqZKCoD4ejcT1RxSs+Z/r8OTTVccysav3GS6FuEaJR2JmlUwWAna3ZhV0wjOzmkPvfxI4K20u0NpnQ2S9HmBUPmpJdUigRANdzjPVlcoSzH6pvUHQgL7jxxcrc2pbxwLqdmdUphvoLR4nNIJ7OMD/HJHIaqoqlf/4nsudWdqztknNpgJaOLdnY06/ndsYffwtm0FYtAgXyzcSDCmLErADsJf5AF0X4medZWjEGhFcn7u1RZCFUM1J7W1AfC8JAxC/B8L+4GUC+sgYayxDiA86x7QYcW3ZCFQVWyGZAec2k8M1DnUmFPp2ZdZwynbaRAlZmztzUH8THZatdLoAbFJYKeApxIHPzTaFFWEN/aoLAyxp+J3WU9VntBGT3HgaeIw4gL3H1a1GHzEzJs3QBq/LMUgFJwRX3iYOGVABoJdnR1j5POUIjgU86mgjU1ERbBplhqygZ5KRjDbaAnt3Q5ok1QCrKzXp+14L0G4fOmUbkJFW8Yvk1iceLHqV7FtgnBMkrR8H0QIJkZOZFbvcyIjv56xj50w39sJJn5YAuDKh+Z9W75dv3HOv0KEH5+wkD+4qDcbb8Eb91FOaOborZsEaCBjltsJmCoYzQ9gGiuqBQXu8RoxK6nAf1THv7hvK1kuhCYkxG5FpR+4R69htKEMsKJjYl2PIWYVMsNd0aL0UnUe+13o1azSKGR4q/X8hTgcBAvcSyAwTosInj3N51x9TKiFjZ37bS1sQdqjJW2a/KpjzUlV5xPpK+HTBEGqYsyxGirISW4F59fGpzVMEOViDsqbEGDAwXE4LgFOFPbJEhpO1ytY3O0Vumn+LhrgWi3VyqdAOFLhS4t0ea1xM5WXI5/xR2MAoT7MUlwvT6b9x10wRKWGQ2VXv5lmtM3uQg1IpiAgug+crB8g8/Hfw/tO4Svkv5xtDVUkSxuSkyRoyip4RBCpoU8IkhIJ/4o24C1A/DiJaJrbV6Dl3GnGApifQWyIqw2VrA4zhQDNlmTkj6e7prG3syjuBdCW1wQpxeNMG+N4AMoYNdYTAIfDOMXkAougG8lv2RG7oS/++Bxhiv9qk3lOn5ElsVA+OcxhcBtDsb5nBQyADRdHlZRmpAuai13sPzGhKX4zpvjWW+npujo9/UIsyOi9/SdfvrK+Wa/Xbq9KRanRgHGiMktIwQrGdWNcrYqHoix4chvczYPlx94P50DhoIrkPZDwrica25WKy+3Yll8YaBnrvoUD6xooXwBgS7YD9uiCnI9Q7gsQeO61ZxsVvBIW3qrQIl4CKu9Q6Qw/uJe0ciIDIckG7Ts1I6oNfv1gsrU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xvGilbn8tu988wg1SSOwUtcBiVAppLDb10E5c7kP2bbRfU0bmnhVsWgN5A8hEehggdGzcQUM/KoskOY+UfE/KZet6oB/XlUYyACEynPSSCEbEv9vUZG1hELUV3oPMjO0mnPEH0ZUkXiNTFlDx6ONmNQUrk4L6m6hRdXT9QvDlgjhDJNEpNA5M2OyQHVAnAQ+XaJFm+FyiuIC0wYkAPDlYRvFAlsRlxL0QeJBK+0EPo1e+He5/vqPlxpZaK3Tkd8xZT04XvDoJK81E/usK0HIvSmKfkFX9pi2dLvmODhD46+PvGLaVO2DtlUPjOlY6O+opNz5XGMzc6i9VZQXkFW6wCUUp+PoBsVKil7Qk5ZqpeO7x72nUqa1tUgiSAQp7F4GlzufxpAwMit3r+Y9+eEq5pD56d6X51frNQOVj9bK92ZjInWr8HHbE2Pt7wKnshefyDw522z7T7l9M2zc0GliBtnuPmu61WuIRkmvVSWBw8ePN3vQBXCVIS5CuQ5yKeF5ra/DWcklHuFrApQ2+2mx+ZeAehmjEtEF/I2v/Npyc/ZGCbyWDEvCy6lTah6EGHEYqtZpcGBI50k0t9oM/I12tjvkxk/Ja/KbkC/rCmCcEwqfKW5iyQsNxlimuBSWt5OxgphaEUK1fCMZx0Du4iAeb+jbjLgYt6bXykohthK0vGjRR+oWyRBfdgZHlFGR1ANzd5R/IZKZfAnyuNeKBwHzcKT33vbm4nm/yRbD27jSYeuPTFISy2/RGVa8HoRqLOM1owxsKYkcHITONdd6Wfwu4eShQFfQXcrt0PuU4W1OU+Hnd3YLRpGgd7HMgaJptaFunLdxYwToRofYEvSxei0aivmSe9oE/wfN5nSF6LvSIV5A7Bo6CeC1RYkvit8C+ppbbu+5qyInpKHfxMXM7PbM9FGn/kKS34WIanK5Fx9KXhOFMJzIn1j/rbPaDz6uBA39RF/Os0Om+ME6CucdJqTG6GKUMGdtBDjhbiZm8L89lbYSFZADgTkN2BYhkMBAYRTeFkfnyAxwyuA5oi0FULJOx3RxgcMiU8BdK0F0FcSACXx6vmK8oFek3N1wbZqhKvy6wlMxL5cu9htCcC7XPTl2aUwRJIBkNeNXTBvOXfZuLDkxiCPPDZ+BitmJSuHgjBY2ThM+pESSqCzXlTyyZxmkCjbd/rbj3mbt0eepJYbjtXngpTdrXpd3ieqKgRnKuht8qH/fFuejVGi4xzLuxJ0Si8JK2jbL3TS7nzt9uasd3+tvojO9xb3x5e4nTvf/FyLZpxcHOvnjertoBdNN6f7TyZETuI81HMTM5A+MzT6ziMWEf7Vkbpzxo2df7YjWzotgj6B2sTgPLV8eqjXUNQd8CKXqPRZM041Wr5ZVc4YpwbSNeGz2J0SAY1TeE7q5N3TaNj5QSUpzer77Z6c0esNFSMyt/kLbeuxGWoTq9tM9leZOFMiltyqYrpBCJVDp2Viy9ZjAwn8ALauaDUZA3fgPx3L8o9JjcUPQ3msvAQsOoJvN6x3QWcmI1q5nOmVG8Ljr4M4hOL4wwAxmWge3IaUxSu5DktvanUbePsE6ZSmCbr1rYX4Y5VHG0p3eM35Whfsc X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: afee31f9-1865-42df-4aa0-08dd6af59e29 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2025 17:02:11.0749 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BazWKj1AVOJ4z9ZjBd6smvT2+Q4OBYXoqLIfYTAkyvSpuemXf7Toz20Y+M3WBtK35bgfs9fkqLiNdmUIM18DXQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB9061 The previous patch improved the rcu_seq_done_exact() function by adding a meaningful constant for the guardband. Ensure that this is working for the future by a quick check during rcu_gp_init(). Signed-off-by: Joel Fernandes --- kernel/rcu/tree.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 659f83e71048..29ddbcbea25e 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -1798,6 +1798,7 @@ static noinline_for_stack bool rcu_gp_init(void) struct rcu_data *rdp; struct rcu_node *rnp = rcu_get_root(); bool start_new_poll; + unsigned long old_gp_seq; WRITE_ONCE(rcu_state.gp_activity, jiffies); raw_spin_lock_irq_rcu_node(rnp); @@ -1825,7 +1826,11 @@ static noinline_for_stack bool rcu_gp_init(void) */ start_new_poll = rcu_sr_normal_gp_init(); /* Record GP times before starting GP, hence rcu_seq_start(). */ + old_gp_seq = rcu_state.gp_seq; rcu_seq_start(&rcu_state.gp_seq); + /* Ensure that rcu_seq_done_exact() guardband doesn't give false positives. */ + WARN_ON_ONCE(rcu_seq_done_exact(&old_gp_seq, rcu_seq_snap(&rcu_state.gp_seq))); + ASSERT_EXCLUSIVE_WRITER(rcu_state.gp_seq); trace_rcu_grace_period(rcu_state.name, rcu_state.gp_seq, TPS("start")); rcu_poll_gp_seq_start(&rcu_state.gp_seq_polled_snap);