From nobody Sun Feb 8 00:11:54 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011051.outbound.protection.outlook.com [40.93.194.51]) (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 A29082147E6; Thu, 1 Jan 2026 16:34:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285274; cv=fail; b=Ljfnph0Ty1sSRwVUVwKhb7pGczLm6UwST/pShdNyzLz2Vk9UWIIVWy1bK9F7k+QsWTqaecf3fKh1ticNsLqYmujdWUMYx5rSIY+MsaCdtMwxT6K64f1OLPDOITfFledk5g8LJG8QZx69FGFZfnQHBgwOojp5fZtecP0+S/cnAiw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285274; c=relaxed/simple; bh=AyO3Vy+yHjiP5HULX5q2SnsVfZJeXocYveMXRpRz6jo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=eEWSK0y4jvLBKGBNZMx7/ZZiJ15nwTpcG2XSj6PUYDu5bTIT8OgDJ4wBEtwgrJsyuAhQGF6UI//bGPBYi6IGpnN/qzUziurZFKp184zLF5/p0Q/Df6Dfz9PvbyDxAw3lpmYSPsemThV/9LwecSibDjLIXzrVwIlTbC4txvQxhbs= 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=hxcE8HzA; arc=fail smtp.client-ip=40.93.194.51 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="hxcE8HzA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pE2MhDDGv59ROlzLlPZ+6+sXgK1SXwZe4OPWwCBnpXy5jLYQLPHhgH+ZSeqaEhVOt8D+OGBSEpLmwWNvEMHocr3AmJ7U+tlGj4/AwoD0FYA8lLi/H6yQjUgs4rqGoiDNO/pwzYr3W5Mpi9klODd3wN3O1Q342f+3o9/OrMaxmxbTWQGdJZFzykpfmh44samarCnI+iFDebE5vDri0lVybQSflTN67KTph4LKfAkhF10jMWdx6Qzlw4/fU1IgmnA9FbkSWxlG6QNVYe7IWu5MFWXwNoWYcUp0ika5793tS7UzOnx+SXmCLCSETQgyZJMyc+BA1UhonHND85f+W0M6hw== 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=j1+h17et1v5VEuaoZ1OD7aU9PPHbmJPAgcNRkMBb0KA=; b=wp+zSXCxexCTHwXvZekQO62cTZ9Ux2SdU5Q9z348s2o+oYhU5GlSVACKB3ZX6XhUDwwUdepbI1t55QL3jS+ws6preYyBCR+tV1LTf7n+5mSEKuVSE7drjnQgSRT+kLXv6j3GY+kJWJY7t8wdxU+UPeD5Swa0Q37qCFDAsryCJK1GvDUdcCi9XwIlo8hXcsqrmRtGG44qi0aMHuLx5Jp/qblfL/1qhUx3wdK34USb1BH2OkSkIzdYVYKJcQaZSAW6YGdLZ6iM17wz5Gddonhaw1qdjFqpfJGZCcY2ZdPhn0LI5HcJ5sl5wDgWl9YBvE6kD5m3v7pwQfGaR3uKiTu6ww== 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=j1+h17et1v5VEuaoZ1OD7aU9PPHbmJPAgcNRkMBb0KA=; b=hxcE8HzACmicx+pE0wSQmGvyTnGr1ie7DmCpRGIpMV6bzsA7rl2Uapo3859fw1VzFd+9S+74HBb8gu494K42+Zc8l7rkOOreNTmg+T97s6xeuORkmnz/+ieUO+FLIuo1XhgZelhk/Ks/fmepPeobFRFjG+zN9yH9Em/FMLP0c9ccWF7vER/BlbRZsxzZMI17O6FEl1HE1TDIm2/DDl5p8zDjxaPPYUwkxMSXxNNDpH1QCe42O0o7IMBdroLF8zsFnTwjJYLSHzHEHkPRtD/wqyjxp1V6QHpVXBrY5eUf/B7K/eM+xNUFnPkEW7Nyr0ChPHBvqY6Oqf/i+dBfjD1znQ== 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 SA3PR12MB7974.namprd12.prod.outlook.com (2603:10b6:806:307::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Thu, 1 Jan 2026 16:34:30 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%2]) with mapi id 15.20.9478.004; Thu, 1 Jan 2026 16:34:30 +0000 From: Joel Fernandes To: "Paul E . McKenney" , Boqun Feng , rcu@vger.kernel.org Cc: Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , Shuah Khan , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Yao Kai , Tengda Wu , Joel Fernandes Subject: [PATCH -next 1/8] rcu: Fix rcu_read_unlock() deadloop due to softirq Date: Thu, 1 Jan 2026 11:34:10 -0500 Message-Id: <20260101163417.1065705-2-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260101163417.1065705-1-joelagnelf@nvidia.com> References: <20260101163417.1065705-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: IA4P221CA0010.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:559::13) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR12MB8059:EE_|SA3PR12MB7974:EE_ X-MS-Office365-Filtering-Correlation-Id: c47ab652-b8dd-4761-dac5-08de4953a31b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?9zt6eHsKcKE9fjjRHWNJUQi3txiRI7hC4kO1I9BraYJYWbhazXqmmUMMe5z+?= =?us-ascii?Q?hMvJsVEZLCdSjVEYIncC2M40erbMyRFyeYSUMwEBag9mHvqqyq+NxkHgXnfd?= =?us-ascii?Q?lIYYbSCG70NZdvmUNx1yfZSK3WjFKCKM9W2IyX9LYIQvjPbduE+Ooj4jIr3Y?= =?us-ascii?Q?Tatrpfz+SbqT1Q8uu7QaH+3f2rJvUY03WVDgndVPn2fq+z4wsVEUOylomfgL?= =?us-ascii?Q?42V8oFP4FnepV0wtS7B+0F3R1IyeBYmMIPbs4ygmhu+MCaTAxPTSgHUbmLVI?= =?us-ascii?Q?AfQb2y+/kSkfPlg0v4XKzy5pKFY2QowD3zJvELQ4zvpRlLyl2GVym0Zp7qbm?= =?us-ascii?Q?fVNIRZEQjOVVG6XarJMggRrwLkGhLEuWG43R7EB6Losy6rTOM7n8dkZSOdjT?= =?us-ascii?Q?AZc1rypXS9yqfvCc/70TJ9VrtPw1wXae1Y/UC+SLGOIXdzpgb7T+yjnCV9X5?= =?us-ascii?Q?vMjAuNNsTRANDiMPszB6hgJ8qiNTcDjtuDH/zkjfTRd4P+EcdEG0bR8y40+E?= =?us-ascii?Q?yrHFnOX5qV4ex4ISxwlWqt5Q/g7n190taq1cUCHrceaf7zxIKaZnTPpmnRa+?= =?us-ascii?Q?ARDotpneRUWLekqIfynZJnqQZ6UbEWGlCQMvppDnWfhkxhhwwU8QIGLjds+y?= =?us-ascii?Q?KBmElU7Z5SEHMrlHgVWJrbJgI6ot3qTiCdRr3w/nOpnkYgmRG7guy6H4ds0A?= =?us-ascii?Q?4Bn+ppobyN6kFl37PZmAh8PYQRovO0pzrCiiOLlBdOGiCHWLFkrUTDXS4SQ+?= =?us-ascii?Q?PMGYD98NVG9m+jc5n9+ko08YeTEHllAInWQmU8XfilcFH40N+rI8g2pJGkOB?= =?us-ascii?Q?MJi6jodcH7ScZ3OBPmGl8B62XBjmz7qbr4u4f/gwh6BlWMRNmZJ9N8v/vqqo?= =?us-ascii?Q?HGsF4CJKlz39P7w5goiEHmviufukJ62AOuVoop1jRpgTrftnLvIk4SloVVMW?= =?us-ascii?Q?nWSc67C/5Ae2TPQFen8bROeIrnKqwm+GxYKBcGGz9oYp9zRniVthSkKzOoqr?= =?us-ascii?Q?jitWTDCg2TNqkO9rk01lou35dLTfMuYYdjRclyhUAUNMDJ2xDk5zx9k0Fm6w?= =?us-ascii?Q?h2fyU0O8xQi3gjKJ5uOka7W4fUbfLt/r6BuDPOw1NuXWpzhNmvXc385cZ87g?= =?us-ascii?Q?AkiAAxZct6iy162B7KVCDl8yjXbsPN99UOeQN0rsbSnMnIyn8DTVRWByTPR0?= =?us-ascii?Q?0zMAt7LRim/wA9Cd2HE2y0j8oA7VREtENz80OnPYf+CYqWCkelGrNKhsFqNM?= =?us-ascii?Q?PP3+fXqHW32FzTrofarzfSjwvAhSFrEHifr3oCu2gpvIaftUSJM52Z6vZpiC?= =?us-ascii?Q?PT/CgbCwKrINW+L5a1aOA1HTZTI/u5c+za/4XEPosa4g2k8bL3ofH7a5ocmq?= =?us-ascii?Q?wCBfEhdGPg8l8BmZYpawVu7ZA+kmNppW9YcvpZGLDJp+GnZQkiIR1u/p8zPV?= =?us-ascii?Q?xvrYBEgyIB9enf1ttCVg63nOCZGODEtW?= 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)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SgC1OU9GXR/Tw0cRpHiY4cLvOEGl/KAU6v7YbeA1eKjd0CqKjJkU+BfSOH08?= =?us-ascii?Q?9uCFEyrRcDfK3TZmlm4agiEu6cp5i+ECdYuB9umuCCaON7fbpbLO4/eCHdqJ?= =?us-ascii?Q?634itbFpPkSgOMx4Gd/L94Dy0oe4yd7JZ0VFR7Uw4vKWrfjsR5AEFuYQBJDV?= =?us-ascii?Q?aAOKZOEDRWHFHU3Of83jXk47fHcQEa2/brBW9obCbCzoo+jQ7bcnrwGI3r+d?= =?us-ascii?Q?OB9v0FLfh1Hto1oqE04p3rSd/MzxQ68g0Yy/Kute4SGKosAKcTdiLuaPG9JV?= =?us-ascii?Q?1pVYOmIZer2dPIOtzh7NDn59aZzU6WVPCVeR9paMcinQSm8e3PGj3AsMQrfu?= =?us-ascii?Q?bg0pieEDIibz/84gHcKvkBY8dCosq6q712zzdL41wy+kdyzPm0gK8Kr+06JQ?= =?us-ascii?Q?/01GO9sG50JsX0cGXXVfkQK/iOPnNoXffF3LwJa3wcexuNkP8/kaOLbxTD3w?= =?us-ascii?Q?NklvxC9LwAgcqRaVjr919uZxFaV5xTfGc7TQ5LzJb24giDXSF5n+l98t3kbE?= =?us-ascii?Q?7bmtxP9Vum8pb003AOu5ul0FIuP2Mp5HuoVxUUjuW1jmZYdeRnaNhOInsQcX?= =?us-ascii?Q?5nUvxk351QSONvhpqUdrVo1+KFR3rWB7UkfPY/jYubj5wiFldGQrr3t8Cl/F?= =?us-ascii?Q?LxBRzhMGG//v3kqI0o2yHtYFFXEfm4r12hFwo4b8t1T1Vm6W38CgsJzKji+H?= =?us-ascii?Q?yvg6H+YzBnwalrjFfSA1z8btH6xiVyWOo/aQq68pgL4k4dYUB7sGPkaLz3wI?= =?us-ascii?Q?Owc5LcYX27op14nE8SONTgjTWMjk9JrnGX/B1+EL0s9BgvQCe8Pey7xju6Zc?= =?us-ascii?Q?HHYMw/gQ0Ib0w4RduzK00klwR41tBXFOod1L6MHBkIf/n5P69hVuGJP18qPt?= =?us-ascii?Q?mtCcsZxnMbPu+X3OJkJuA6AG0uFvW34G9tQpD3ypRQHmTPQQjq+ewLytQuvd?= =?us-ascii?Q?ImgKaeyjXsjwJVltpZTiWLyHvo48/TMIk7ma9IRXO0Yd0m5yUa2pmPQl5P6N?= =?us-ascii?Q?8Pflku99hBviEg5vIW3Mdj6Ktl8M4vBeJp9J7+PPYa7g1DCLnb5JV6SutvfN?= =?us-ascii?Q?OEzlDTfh0IzOVEaUE7V2eWH7y7REa/jrVHFd8m3B+P3Gay0NFUb9ZbBz4RB3?= =?us-ascii?Q?w3IMwksWXczReB9qFqB2KHm+TMrF7vwQTlPEU8aePrAJjJEajnu34WiTr5V9?= =?us-ascii?Q?KbPHK6y6suycevvui679WTo6j4WI6FWJY/43UztgMR2uspXv/86V2ffHMwrh?= =?us-ascii?Q?eELiLTNUGkUar5OnU5dZtamoFANIu0sacVMIL1vGPkGC4ysxezyj51LOpCwp?= =?us-ascii?Q?h0p7TAsKfDohUEZM68zwZ5fuc+IcxBFiL4c32/G/yH2/0XruH1D4vxQMlKYH?= =?us-ascii?Q?Xg3sLpvzCeCG3g9VDj8Aa1bjhwXdGhMDizLDP67qLGjooTvOHDr+DcJxzqqD?= =?us-ascii?Q?4lSZjlf4kOwmoJzKoZJEpci6B4sIwWzfvI0hhzKTM9ckWNLjdNf/I2xzPYOn?= =?us-ascii?Q?RgiVoPxdNLdVgWXgALLq3J7fp9cIAsrMznj4xz4/imvuDXPGs6h12ZN7S0wg?= =?us-ascii?Q?61NWkcuu4LTJBGpmKhgPBQfJeWutayDQ686NMjEmt3uXZ85qU+XfU+zHiFot?= =?us-ascii?Q?hqSVvIHsdoRoP9x4P3nXVoTLYTP2UWpU3ggoY7fym9SnO504lxAaPJDw5yev?= =?us-ascii?Q?OM0kZUf4gco0jUaKBrQ1GlRPcV5kXcQcZaJO6nIX4mIEO84VUZlRlr80QIR6?= =?us-ascii?Q?gSiLdPz6Cg=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: c47ab652-b8dd-4761-dac5-08de4953a31b X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jan 2026 16:34:30.1419 (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: ifDXK/14oEz9POmqwXjrqtyXDNi2lvmATEuk3S2kodj0oafel6twZ1Lj2MAM+JrH3xAWebGPEn6qDc381aDD0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7974 Content-Type: text/plain; charset="utf-8" From: Yao Kai Commit 5f5fa7ea89dc ("rcu: Don't use negative nesting depth in __rcu_read_unlock()") removes the recursion-protection code from __rcu_read_unlock(). Therefore, we could invoke the deadloop in raise_softirq_irqoff() with ftrace enabled as follows: WARNING: CPU: 0 PID: 0 at kernel/trace/trace.c:3021 __ftrace_trace_stack.co= nstprop.0+0x172/0x180 Modules linked in: my_irq_work(O) CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G O 6.18.0-rc7-dirty #23 PREE= MPT(full) Tainted: [O]=3DOOT_MODULE Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/= 2014 RIP: 0010:__ftrace_trace_stack.constprop.0+0x172/0x180 RSP: 0018:ffffc900000034a8 EFLAGS: 00010002 RAX: 0000000000000000 RBX: 0000000000000004 RCX: 0000000000000000 RDX: 0000000000000003 RSI: ffffffff826d7b87 RDI: ffffffff826e9329 RBP: 0000000000090009 R08: 0000000000000005 R09: ffffffff82afbc4c R10: 0000000000000008 R11: 0000000000011d7a R12: 0000000000000000 R13: ffff888003874100 R14: 0000000000000003 R15: ffff8880038c1054 FS: 0000000000000000(0000) GS:ffff8880fa8ea000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000055b31fa7f540 CR3: 00000000078f4005 CR4: 0000000000770ef0 PKRU: 55555554 Call Trace: trace_buffer_unlock_commit_regs+0x6d/0x220 trace_event_buffer_commit+0x5c/0x260 trace_event_raw_event_softirq+0x47/0x80 raise_softirq_irqoff+0x6e/0xa0 rcu_read_unlock_special+0xb1/0x160 unwind_next_frame+0x203/0x9b0 __unwind_start+0x15d/0x1c0 arch_stack_walk+0x62/0xf0 stack_trace_save+0x48/0x70 __ftrace_trace_stack.constprop.0+0x144/0x180 trace_buffer_unlock_commit_regs+0x6d/0x220 trace_event_buffer_commit+0x5c/0x260 trace_event_raw_event_softirq+0x47/0x80 raise_softirq_irqoff+0x6e/0xa0 rcu_read_unlock_special+0xb1/0x160 unwind_next_frame+0x203/0x9b0 __unwind_start+0x15d/0x1c0 arch_stack_walk+0x62/0xf0 stack_trace_save+0x48/0x70 __ftrace_trace_stack.constprop.0+0x144/0x180 trace_buffer_unlock_commit_regs+0x6d/0x220 trace_event_buffer_commit+0x5c/0x260 trace_event_raw_event_softirq+0x47/0x80 raise_softirq_irqoff+0x6e/0xa0 rcu_read_unlock_special+0xb1/0x160 unwind_next_frame+0x203/0x9b0 __unwind_start+0x15d/0x1c0 arch_stack_walk+0x62/0xf0 stack_trace_save+0x48/0x70 __ftrace_trace_stack.constprop.0+0x144/0x180 trace_buffer_unlock_commit_regs+0x6d/0x220 trace_event_buffer_commit+0x5c/0x260 trace_event_raw_event_softirq+0x47/0x80 raise_softirq_irqoff+0x6e/0xa0 rcu_read_unlock_special+0xb1/0x160 __is_insn_slot_addr+0x54/0x70 kernel_text_address+0x48/0xc0 __kernel_text_address+0xd/0x40 unwind_get_return_address+0x1e/0x40 arch_stack_walk+0x9c/0xf0 stack_trace_save+0x48/0x70 __ftrace_trace_stack.constprop.0+0x144/0x180 trace_buffer_unlock_commit_regs+0x6d/0x220 trace_event_buffer_commit+0x5c/0x260 trace_event_raw_event_softirq+0x47/0x80 __raise_softirq_irqoff+0x61/0x80 __flush_smp_call_function_queue+0x115/0x420 __sysvec_call_function_single+0x17/0xb0 sysvec_call_function_single+0x8c/0xc0 Commit b41642c87716 ("rcu: Fix rcu_read_unlock() deadloop due to IRQ work") fixed the infinite loop in rcu_read_unlock_special() for IRQ work by setting a flag before calling irq_work_queue_on(). We fix this issue by setting the same flag before calling raise_softirq_irqoff() and rename the flag to defer_qs_pending for more common. Fixes: 5f5fa7ea89dc ("rcu: Don't use negative nesting depth in __rcu_read_u= nlock()") Reported-by: Tengda Wu Signed-off-by: Yao Kai Reviewed-by: Joel Fernandes Signed-off-by: Joel Fernandes Tested-by: Yao Kai --- kernel/rcu/tree.h | 2 +- kernel/rcu/tree_plugin.h | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h index b8bbe7960cda..2265b9c2906e 100644 --- a/kernel/rcu/tree.h +++ b/kernel/rcu/tree.h @@ -203,7 +203,7 @@ struct rcu_data { /* during and after the last grace */ /* period it is aware of. */ struct irq_work defer_qs_iw; /* Obtain later scheduler attention. */ - int defer_qs_iw_pending; /* Scheduler attention pending? */ + int defer_qs_pending; /* irqwork or softirq pending? */ struct work_struct strict_work; /* Schedule readers for strict GPs. */ =20 /* 2) batch handling */ diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h index dbe2d02be824..95ad967adcf3 100644 --- a/kernel/rcu/tree_plugin.h +++ b/kernel/rcu/tree_plugin.h @@ -487,8 +487,8 @@ rcu_preempt_deferred_qs_irqrestore(struct task_struct *= t, unsigned long flags) union rcu_special special; =20 rdp =3D this_cpu_ptr(&rcu_data); - if (rdp->defer_qs_iw_pending =3D=3D DEFER_QS_PENDING) - rdp->defer_qs_iw_pending =3D DEFER_QS_IDLE; + if (rdp->defer_qs_pending =3D=3D DEFER_QS_PENDING) + rdp->defer_qs_pending =3D DEFER_QS_IDLE; =20 /* * If RCU core is waiting for this CPU to exit its critical section, @@ -645,7 +645,7 @@ static void rcu_preempt_deferred_qs_handler(struct irq_= work *iwp) * 5. Deferred QS reporting does not happen. */ if (rcu_preempt_depth() > 0) - WRITE_ONCE(rdp->defer_qs_iw_pending, DEFER_QS_IDLE); + WRITE_ONCE(rdp->defer_qs_pending, DEFER_QS_IDLE); } =20 /* @@ -747,7 +747,10 @@ static void rcu_read_unlock_special(struct task_struct= *t) // Using softirq, safe to awaken, and either the // wakeup is free or there is either an expedited // GP in flight or a potential need to deboost. - raise_softirq_irqoff(RCU_SOFTIRQ); + if (rdp->defer_qs_pending !=3D DEFER_QS_PENDING) { + rdp->defer_qs_pending =3D DEFER_QS_PENDING; + raise_softirq_irqoff(RCU_SOFTIRQ); + } } else { // Enabling BH or preempt does reschedule, so... // Also if no expediting and no possible deboosting, @@ -755,11 +758,11 @@ static void rcu_read_unlock_special(struct task_struc= t *t) // tick enabled. set_need_resched_current(); if (IS_ENABLED(CONFIG_IRQ_WORK) && irqs_were_disabled && - needs_exp && rdp->defer_qs_iw_pending !=3D DEFER_QS_PENDING && + needs_exp && rdp->defer_qs_pending !=3D DEFER_QS_PENDING && cpu_online(rdp->cpu)) { // Get scheduler to re-evaluate and call hooks. // If !IRQ_WORK, FQS scan will eventually IPI. - rdp->defer_qs_iw_pending =3D DEFER_QS_PENDING; + rdp->defer_qs_pending =3D DEFER_QS_PENDING; irq_work_queue_on(&rdp->defer_qs_iw, rdp->cpu); } } --=20 2.34.1 From nobody Sun Feb 8 00:11:54 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011051.outbound.protection.outlook.com [40.93.194.51]) (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 6EFF2240611; Thu, 1 Jan 2026 16:34:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285275; cv=fail; b=fpmraI4lEqQDNX0GMndtzmR0Nw0WI7eJkCE7NWa6l5cjuQ7um+3T1mIJpUava1Aj1FqHHgKP911XmIZtIUWRca4ulefF6qhX+vVCg2/pW7qZQUmPf3tqtJ6aK+/rtc3cn8CXibqfUQesLHYCgalvIrV6QAJuRoTMX7gv7Oagf68= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285275; c=relaxed/simple; bh=lEiXzjqJtdjGrLEjrFKKE1ym8sWjGPlXDWv1fgJJiHM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=IiR4+fAbBWj36xl9qShrFrBAc5+jOtUxlDrdLSV13DLcUWHCHtYNe22QtVZk0goBzpxKOqqIM0l3460RfP3h92u/aRLObE/UqQ8fl+1nPn+bLIPr2iERr01tS4ZhLo66exGq6rc6jH1PAWkrUhnzF5MUdSYFgEUTM8V7VS20jMs= 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=XJwCOOUc; arc=fail smtp.client-ip=40.93.194.51 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="XJwCOOUc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ePDaTE+oXs+ktvIstIOHk1ESUCYdO1+/SExVD2GNAVh1fDkm8WT1YMseED4G13M2HV6YLZJ4GF0WgqTka8J+QkEeKILRKEhxwiFA5Gw4rKMGULxw80z3Af1y0Vf43X8SsSejUwTSKLkcGeMNlQiXG1dmmzy6e/WsdqPpxoj1gfU7vUumJ0rHARv9yIY9h33/HItuCN1Ontm+Ru9v1d+9mjPrAiAVetu4QdrwqEiuT4s9tpO+ip+KFlEOuAuAKkd/YkHj8+jLUf221z/idsqJBs3jRPNOAC0zTzIiffOSZ9uTCRMUOvg4xvBsdgvNmYm+R3xr/a/6R3p05DCO7rGyGA== 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=WJZmZHaAdWvMYk20Kdz7Fl7cCtyMqT6tIcPwuY3+YMg=; b=Po/XUYoQdpPRUQNPoqcDheP7gRGyZ+1Jn+VvRQl/QDkysPWWU18wORqyvpOcCV2bVYq/McKqts/rToDZr4OQW67jAbtNammKTXAuEPGKj7D4LhsWZjurY4bje0/d654Um6K5RRFZw7TuacR6ggD48UtnifedlmRXl6U9+Lqc1nn+rjF2ZgdtbXBGNE/bk3vAIA88/Qht0UUNgOf1eVUsUo7XsTluIoiI6mElpPuS+7t7grCm+4/nQAV9rocJCrDFma/FWWJBZ8UbliL7dxPkd2ZQWF8Fw57tgnWrQNmSWcuY5uR/OXhqui6Yi6BK59H9dc2IoYCUhIyAJ3khAF1fbg== 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=WJZmZHaAdWvMYk20Kdz7Fl7cCtyMqT6tIcPwuY3+YMg=; b=XJwCOOUcq061a4KIkdb52gS3aKtLbItGrkqqCY3Z9DwNqoPsXF+9QKjHdc8HjcKyLpQ0uEZRO1sZ0gJydMYKgsNNrjXJhoYMgeO72Cc4invfzg4s301eis1ZXeHtYWcQCbLW01Aq0VXk5U+/erqptFkHGdKy2LJXHc6IA9hIduPiKGFEJeIoIRcIjO2VKYGVItC96t5B4vNnbxmquuMvBgvCOsRjttYVExIUq26AKUbbXfErLBy4P1PwGkQcuMufNn4l0ZPRjXL5oEBA3AIsWELCXRDShiRkbaCuLHIoun0C2Aixe0zGrJrhJYMxSQ8bUItlWT6x2iUXFfVdr+f9MQ== 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 SA3PR12MB7974.namprd12.prod.outlook.com (2603:10b6:806:307::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Thu, 1 Jan 2026 16:34:32 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%2]) with mapi id 15.20.9478.004; Thu, 1 Jan 2026 16:34:32 +0000 From: Joel Fernandes To: "Paul E . McKenney" , Boqun Feng , rcu@vger.kernel.org Cc: Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , Shuah Khan , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Joel Fernandes Subject: [PATCH -next 2/8] srcu: Use suitable gfp_flags for the init_srcu_struct_nodes() Date: Thu, 1 Jan 2026 11:34:11 -0500 Message-Id: <20260101163417.1065705-3-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260101163417.1065705-1-joelagnelf@nvidia.com> References: <20260101163417.1065705-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0179.namprd13.prod.outlook.com (2603:10b6:208:2bd::34) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR12MB8059:EE_|SA3PR12MB7974:EE_ X-MS-Office365-Filtering-Correlation-Id: cb7e9f8d-2343-4b25-6321-08de4953a451 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?jnwFAC3+KSifle1xAjvBNwJgu8dS+UaCxTbLnZ3KAvNUbVjZlitGjzdK0871?= =?us-ascii?Q?1lHqoZ5n1TftKgIHNRlcVapirZ/NKmSFtXnqn1u/w7ZUPV8lA2UpmeAKh3Lv?= =?us-ascii?Q?ZTh6XAyN+N+LNXq8LsRBdjAm3QcyB038QecKD9nA22V851mPpqpZWAp1ApjD?= =?us-ascii?Q?cCQeV1HqkpptLhcuhinV5bo9pJNijeSs9LZ8sstg8pgLGAgvfu9N8StRavgw?= =?us-ascii?Q?W8VjlVc95idUILjYMCk2Gn+GC2++uTYrylpELueypJqfBFZp3ee3GZzbyZFV?= =?us-ascii?Q?vfmxoDm/OBHdPWJKZubL8HWDH0DXaP/p20iPLG3g0FEzWcEHNd4q0wUwIIkl?= =?us-ascii?Q?2z1u010MjcpX/xdAbbnF0TeaqYU7J/KL1qlO20E35Q1q+7KJb9g6Ke2u3BTq?= =?us-ascii?Q?geuGrcvewKFEVtMgkA7qWIT/5mfsodP+5rdsARGlro2Uqdje+YIkkzJiNM1o?= =?us-ascii?Q?CEL7stATatmikWSqULmcFyfIE3LABCUVv9GTfGnT1eiRjENK4KpLtxOUpPvo?= =?us-ascii?Q?aoM1e9OTyF28bIksy7761NTgHRrXyXvlbTZlAUUpEB5hriUHmaXeKNE7uZM0?= =?us-ascii?Q?SjAM9aHIqMWg86DE3OJLBFbWO6Qja7NmBhLk63VErCQyWiMf5ntMh4K+ovjs?= =?us-ascii?Q?JE8ZOwgfb0B+/sZwXw1ajjhz/WyDNmwTVgvaYsb1gcQ3+yZDPv5rZT/EIbtt?= =?us-ascii?Q?BXWP00eIs41JcawW6PeR0pmdA00NoXmUEVgADM587MVr24077aaAGLz9iQRE?= =?us-ascii?Q?gWfcqqB0Z2KJ0RrH0cR6kknXu40rEsz4BrR9wWmXOZDXMegvg9o/XtG9sord?= =?us-ascii?Q?dUoy3SNhg+GqGdWR1YwSlRmr+wUyj0ZWN8zlBiyBthI292mztdFJ6CTyngE/?= =?us-ascii?Q?fbP66OZBXV5X6Zw2P7Xhj/MowYEQ8mFxgHfs6JHSLpDlnxxLDMVXzx/xCX7f?= =?us-ascii?Q?lae1jkZm9ghpiSYA1J4MVf3rAw+rq2k1g6gQ7jBjXbk47pnC71FAJsRXg68w?= =?us-ascii?Q?jGdveUuHYOiNBnU6HCLB1WriJBY3S9ea7X6OLFbMhgsOTXGjWjA7lkjNIV4V?= =?us-ascii?Q?2kWyHoPKEhCzz3Jvo8M5eH49B6eZOJ/vtdLpdr9jpZnpsMfK0XEj3KK4ufKp?= =?us-ascii?Q?omx8hBHAFuH+mrkOexuJXxq19PkejeZTRDMsmzZveSI16XDvqIJ2R7qndWLJ?= =?us-ascii?Q?7Ivr1kV4DPwOq58phDOHbBP+EGfT3xZ6dVgBzi6ZyXoJWzd113DYkz32tHyu?= =?us-ascii?Q?SH09f2ETMf4GsMgfRJCAwgWisZNe3MvggWMMIYYQTm7TWkri9R2PVM/eK8Jr?= =?us-ascii?Q?TmITu0Q7pHsHv5r4qypCsNAlh9VjvanO3TU3q546BN1Eh6vlVQNPf81kSE43?= =?us-ascii?Q?Zs2lljDgp+wKXfHtX82Ime7QQFcgAjKW9KkRi+wRZoPRRmP/OZzCbQaqktaV?= =?us-ascii?Q?R1z+KkKUDETnBKXFuBmJRyrmd/+d2iBx?= 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)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?POm4nu7Uvcp1Na584lZYWCDHmt4nDfUwKuKvSTobwBw/7M1fK/0zXDsJdmg+?= =?us-ascii?Q?Gxv839D9XiKG949wjyxWu8341zsJhSyqqiZXlkvM0P8vKwSYtM49DrLTRK3K?= =?us-ascii?Q?PqUZzZEmQMEGc2yAdjVZxMN+HLv8A9y4F3ostWCvT/nnFc3PdPFw7mCsE/qJ?= =?us-ascii?Q?jcJB2Jq4CWi9zdPyYKpUWxiy0i5OTTc+kXvPFN7ifmfIxO83LchChcxTTTZI?= =?us-ascii?Q?Cax2hdrcuAr5DpEssRcW8eNcbN9FeYuJ30bMG5CEV2RT8LIrdPPgUOCcq7Js?= =?us-ascii?Q?aFIQo9lmIXI/qlsuwnxTJf4XesDLNfm3wZA2tjJ3SIXPi7XQOgGnLhXFEo91?= =?us-ascii?Q?kJ8a+vUbYg/rBK0fW/akSxvPFb7yEIgU+QAOK73WCwtagrR0SM32JZoSxpAL?= =?us-ascii?Q?SbCJMvBEZ8K5+BgQQ2DUHmmE55PRcSZGF4HD1fBMcYS02EBALtcY7KEAKx0k?= =?us-ascii?Q?yhqgvaAIeGF7uxdtKJPphWOv7oxURH83qbwxKAicmSN0JpBypV9GXHgnnog9?= =?us-ascii?Q?t1fO6LFXHZDuul3y4nTvJAGut9mVi0B7o5uAijDAgCttuxdcfEeYovf8bTGs?= =?us-ascii?Q?T+hUN1stzhH+/xH116v10cf7841Nrx5/t0VQYdSgwxBWsbJxqKVg6FN2z0lG?= =?us-ascii?Q?2ofJ0GlWfwZ+QZwW7whb7Js37qIY9VQI2dxD7exEp15OClOhHqc86tmc2UCW?= =?us-ascii?Q?GP++CmP0RUFZRkdD5ZaG/vL3BwTRr2lLpOdAN5xLGl5GybVGGGkov4j/X8G+?= =?us-ascii?Q?+s2Volz8uLds0FARebmkYQlSiwscXS0yl2zpH2PzZj6zYJ94qOUHgfOrp2GZ?= =?us-ascii?Q?HICtXs5oH7UxpoMvKNvE/k1pBCprd11Aq+3+HU4shyYZWA1/XWY6PLzDlImm?= =?us-ascii?Q?d0plL7WFtGDuT4F9JkTqOl9PTNQPTmdjFa4qhetbor/bRrLRTvx1ytDEqhGf?= =?us-ascii?Q?614C1kklAC8g1lwqwSC18sPcFhb6rlsjaO+AUUrSyvTmh0X75UOXK7GPlqRH?= =?us-ascii?Q?jj0fOSCYGAEcbd9aAJTgrOYK+mSX7ltbLo7kO8+cw3v+XpYqRzXLjByTDDSs?= =?us-ascii?Q?IVvS7cm86gLu8AkP9j2Biebvm8PF3sRaFZxf6JmsJkWzDHoIdto5XPtah1ut?= =?us-ascii?Q?lDeA+IgLiTuGuUWC8OwRUHXH1+RdQ76/wtNOCPNvaYDTIKyb251b5vXh65iX?= =?us-ascii?Q?07BXdZSIzZ0C9HY3u2715Rk2XHY2wgzKWuvMBprGNz0treLjuWfNx0xGgDkf?= =?us-ascii?Q?w17dZe+4d8oht5txNjoefRp+d58iYIe0aIU4oFf0ZR6DWxERRTSCh/TcYNQj?= =?us-ascii?Q?wErpsOa4Rge+/ZQsrPvc25PHKFhyWOdu3qMMfkUBBTHe9baxF39/4k1YRhex?= =?us-ascii?Q?rIQkPHLdtyywJ5h52nmv1CYSbaSQCosxmfvP1p8ET919oZcA5YX0W35T4gk5?= =?us-ascii?Q?97q0L/qbzFvc+ADw/Q/Vfab7/EbAa063DPT1gAvdCxT8hWXvLciOkDP4vXc/?= =?us-ascii?Q?pHTMA/vSRvcbxDbMHun8bBKUVeZ1ljg/+PIGM+zcFUkrD0nQuUV4VMaAHRMG?= =?us-ascii?Q?wV21mjYZV0t3x6rW/oZU5ZrSfYfXIV+OFX/id0X/uFvErzhCrjM8D3qfLoyJ?= =?us-ascii?Q?/lUJbydx6Vm645dPg91gqTprZXxzKnI4gJ+guNqc0Q+R8KV+XX4H9EJayNKC?= =?us-ascii?Q?/0XvN/vRr62tCrMIol0Cl2+oQwaN3u3aMA6X3pSzHbPCwwqSFB2ppKn0zs7h?= =?us-ascii?Q?X4KKtRK+oA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: cb7e9f8d-2343-4b25-6321-08de4953a451 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jan 2026 16:34:32.2176 (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: MEIK7hCbpgpl4XKhl5Nh6PPihViidwXNrSOOwspAK+IrS5gyk4Uz7r8SmjQIqneSGkdTz6tAHEWhgyz0vUVeKw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7974 Content-Type: text/plain; charset="utf-8" From: Zqiang For use the init_srcu_struct*() to initialized srcu structure, the srcu structure's->srcu_sup and sda use GFP_KERNEL flags to allocate memory. similarly, if set SRCU_SIZING_INIT, the srcu_sup's->node can still use GFP_KERNEL flags to allocate memory, not need to use GFP_ATOMIC flags all the time. Signed-off-by: Zqiang Reviewed-by: Joel Fernandes Signed-off-by: Joel Fernandes --- kernel/rcu/srcutree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c index ea3f128de06f..c469c708fdd6 100644 --- a/kernel/rcu/srcutree.c +++ b/kernel/rcu/srcutree.c @@ -262,7 +262,7 @@ static int init_srcu_struct_fields(struct srcu_struct *= ssp, bool is_static) ssp->srcu_sup->srcu_gp_seq_needed_exp =3D SRCU_GP_SEQ_INITIAL_VAL; ssp->srcu_sup->srcu_last_gp_end =3D ktime_get_mono_fast_ns(); if (READ_ONCE(ssp->srcu_sup->srcu_size_state) =3D=3D SRCU_SIZE_SMALL && S= RCU_SIZING_IS_INIT()) { - if (!init_srcu_struct_nodes(ssp, GFP_ATOMIC)) + if (!init_srcu_struct_nodes(ssp, is_static ? GFP_ATOMIC : GFP_KERNEL)) goto err_free_sda; WRITE_ONCE(ssp->srcu_sup->srcu_size_state, SRCU_SIZE_BIG); } --=20 2.34.1 From nobody Sun Feb 8 00:11:54 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011026.outbound.protection.outlook.com [40.93.194.26]) (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 71A9EA930; Thu, 1 Jan 2026 16:34:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.26 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285284; cv=fail; b=rz4VgYQf0NwjZKpxSRrecfa+kDNNNHY5E3CPN72vfDIgi2KAfDzsixqwuACqurV1qlF4SM6rh+9RxZjMKrjb7TmvpryDm7KDRgSPxR55+Bo6y3n6GobW5OuViCJrVrhEQlTjRJn40fjLrUbcXjh2PNcJCT/0bPuiTFZImblVzZw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285284; c=relaxed/simple; bh=p8KVKgo8s4PArie4m4TQlGRVINi1bNqNqFXJK21zs2g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=Zqv2eI6vo2aBL9IHY40/yDBE/9DaFi7nEXhFYkWg8ALby9QR5HNC6YOdtzmLUgFyWdikZPLOt/zYkveOPPNHVA9kewn8Ven3UdW9+fceXlqDMxR/xAGCuHAox4vLKMJ6atb/6O0WBeE21c5SGL3QDcQUtd4jRTEHdqeB3XMAJ7o= 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=SNangqSO; arc=fail smtp.client-ip=40.93.194.26 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="SNangqSO" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AhsfdFJ0XkVhvkFY4FsRC4fFpyuLe+FbrE/ky5QRxmF/PKsEljyMzLp7adAVgVbMZXR1S9HlEKAflVi3pDf9vLhSKpnRANWvHyLWTugJabcfnEgdIvRDmd+MkSnZSORLy/NJNxekNUQd1V5YewAnEiM2gMdbDj2z/SxkS0Sc8Ef61NmHB+A1dZYrGzt84txUFE0e2vdtCbjrXULbd2OItsXaOdjBNgyfDPz+CVVncySVCeHU9KF9jPiV9ZroWVraPYFfhpniqY6oIv1tyOMcl9DEieBWo/JBhlIosjv4Mtrrmxe/RyUOEFuxzEeS5ybBkph1mp2L42zrW9Ux8nbVtQ== 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=xEa64l8vP7wMhTDFq3tXSJTh+Xg2v4Agv8G5JTTR/lw=; b=uG68qVWUHZzVdxaPiCENs837tOhjnUQJtnLd2qz25NVbgFiMetj+je8QCRtIP6IO6Pcq9Ro2/DKiTXs5snCPT9qfFZ64hGU6IowUJdqsILcPberv0amXS8ciAwbzOD9gWdt14TYGkUDyj7K2WkyXyR+cJpk6PjWWCmPnOtmtmJb3KiUbKM6nVqy1GT7Dz+m80GRUFeilAT+OcApHdflrPrT3MzZjsciw9G3kpcblTVjIBCFfUhSQk7vYYwElwl4TGrXX47ptl4nkUl6yYC3jI5Y9Eq3/x3ZuPDyM+XSM0PAPTEDkOF39+5uOAgV9LfQLwVhRd7ixMEfkZum6aq4ymA== 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=xEa64l8vP7wMhTDFq3tXSJTh+Xg2v4Agv8G5JTTR/lw=; b=SNangqSOx7skRyrYzYqfYw1Gk7SO21NAdsa44pKxpEINzK9Fj4MktWSiceW/422t8izNIzr9r0uo3cNTFSLu8yT6Wbe/FwSmASpQvmAn8NoMRlzI+z5MrvRIy4/ig04WkpssvQVyoVhNH5Ui2fRZRyGGCnqPOt81HlvIilce934Xo2Iu4+1+HrpTsDRMsOw3DLg7ITt7vIe3s/Ey6fMwScBB0aaMUrfbObvr1cUSH3Y7KkSE8wk0DOP0qcrDOs9C0HJZgbdoFB5g21RBxbDpbIKVGcAG3l+JFg27Uw7qnceeW6rKTxbTOFbbCtwKqtZ/t1rxo9Qud7JHqh0ObT4nQg== 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 SA3PR12MB7974.namprd12.prod.outlook.com (2603:10b6:806:307::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Thu, 1 Jan 2026 16:34:34 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%2]) with mapi id 15.20.9478.004; Thu, 1 Jan 2026 16:34:34 +0000 From: Joel Fernandes To: "Paul E . McKenney" , Boqun Feng , rcu@vger.kernel.org Cc: Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , Shuah Khan , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Joel Fernandes Subject: [PATCH -next 3/8] rcu/nocb: Remove unnecessary WakeOvfIsDeferred wake path Date: Thu, 1 Jan 2026 11:34:12 -0500 Message-Id: <20260101163417.1065705-4-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260101163417.1065705-1-joelagnelf@nvidia.com> References: <20260101163417.1065705-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0157.namprd13.prod.outlook.com (2603:10b6:208:2bd::12) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR12MB8059:EE_|SA3PR12MB7974:EE_ X-MS-Office365-Filtering-Correlation-Id: de950f6b-3b24-4c9d-4aa6-08de4953a579 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?HeZQrZbU0sB+XpMIhYYSF56zQq5SM5k/0QEC19MDvsBWCCdwIJG2riBKJuMo?= =?us-ascii?Q?9JG5/OXyAjKBA0Xo1UEfiYJQUfiCQ1zY+iYF6bBr7q6lNT42TRdshYC8yxjk?= =?us-ascii?Q?79n4/pK7U2PlErMtEXb6TbK5M5vEA7DF7Af5ITcKkPr7HoRaWB7fj95Tl6AJ?= =?us-ascii?Q?gK+VBU3LIHM21UdHfMDSWkvf4KG0kLjrKqi+yjlCseYwtFBMUdDx938b/XNP?= =?us-ascii?Q?RC+KvGdt6J1UUCylAnOvESnj1j1oRlt1MqtI2T9rx4Iei7o8X8qx7YcgyYIz?= =?us-ascii?Q?lDmds3BEwHhESPSeQ9zNqNCFOY8jPEa+hAIhWrBCNVCX0xGTP89lvRVTZDRr?= =?us-ascii?Q?vErxtviBj0pMSYv63gkWquMMIEP6W77wMTF+k4CMGGpNkAqBqdttn3Ak+bch?= =?us-ascii?Q?Agj5XMKo0u+4ugpotDqGeUMwx7kqm45GlC8Ar3zndXnu7m2QYqOWlnBpLhyD?= =?us-ascii?Q?toJuzLKkUbarWH4XrtRtdi5O41Ag5AQ9kD2sXoN6EWJXgFfrpK6+K0uC0bxZ?= =?us-ascii?Q?i3pK5r+k/jFhqoNCYAA0SgBP2nJWMh8IFfi+fxS15Os66D4/YlCs4x2Uow9g?= =?us-ascii?Q?tmrxHCJN4QNjjBpROkbltSdZMyJSziS2y2TLShzDZ2PdJ/PdGPHjQR5vnDco?= =?us-ascii?Q?0cIMHxEM54PrJ0fYHXQvBTxink64GVvKD0Kos1SZZiXSUzsAF36mCzhbEfnU?= =?us-ascii?Q?LiB6rjTmWAj2/bE8ptkYdOwa4ETgz7b+JGwWna0E0A0hiNHCCiBe46Iew8l7?= =?us-ascii?Q?yeA2EyHICKtubTbKy/XRLjQ3JMrI4/HzoujPLuAIB39O6MVeOEHZx1oHuE92?= =?us-ascii?Q?SFSYMja9SC3VNa23YyXu+PcR6sxbC/U/ilu2uwfsX/nc39YneJ3aMmnUX1J5?= =?us-ascii?Q?bTDeD3Wo0kT0bDCH3RgHftgWnX/Zi+1HFtQXOtGgrU3L4aDYmT/s+UnpLlYT?= =?us-ascii?Q?DxulDxQEQVU4u3k0wh2DmKgm6g0Cdq1fZbOXM4JDZ9vGuy138BJARrchKzpr?= =?us-ascii?Q?qiHlt7euUl52H1GWv0tGHp/T2LvlJRrL268N7BoRQO7dWW2S73Bx8gzvhhaf?= =?us-ascii?Q?rIJbg8X8vxEPVnSldd6MS+ltBglgZ7vRVZzwarrykTEG0mhjpKVVyHBrTBIL?= =?us-ascii?Q?4/wgTNM+oBCXD1349hUt4bfZ9ZSTyr9HcOyJWvPluaEntxAk8iz8FgdGSr8Q?= =?us-ascii?Q?Y3JLSPEnOpy2mRA+McssAP6CqO9WPCpZhKhjRtKOm9sRSe774hUC3mugXVLh?= =?us-ascii?Q?gQXZ+/b08mGVISjs1gcqynbcei6CUcnAhTZOmmhVtXNsTVXlfBLvlbXN4NVF?= =?us-ascii?Q?eOv+/P5311Rb9go7t8mMs49rHr/udjfXwyw1dx5Q2+ZK5OLsW1GoPl2MFi5c?= =?us-ascii?Q?22pDjfhZx2jJM2lW5EF+f1RQ55QHSN6a4DuGBoraiH6+zzFDsLcPWVDBjYxk?= =?us-ascii?Q?TTGk2L3DoKLD+r/fZQqH4frjV9mvJpdn?= 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)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?W5rurDIya/uMFS0PwJWPYf+DramJOLQ7qDkCByfjCImhJZJyfP6r/ukLjubS?= =?us-ascii?Q?roUDvCzpzcGIUJQdyjOB8OIsPU9AqTfpPfApbXdoZPdQgeK1zqrzpWvCLEor?= =?us-ascii?Q?XLws1qZiXu9HRWLZGqnA+daXbKQwS4AABT6mGSLbvn0owbeTbbABhg0jtmZH?= =?us-ascii?Q?WX+vA6C1VwOoJiQkcneF79VbHcTeoIaeU/Ncj/QCIjRjkX9TCYSG5rxt0z2m?= =?us-ascii?Q?SSx+WnAnKvw4EO2f0JzRrlmmfOty+sevYSv4zrS60keHSIcZS1pK4FQKXgnk?= =?us-ascii?Q?Ass0FO2dDzNw7PInamCo3z4U8jZB8Dg9NbV/o/5UgMkFuFJAUaltVI2yH09u?= =?us-ascii?Q?7lLnwXWR/Ga5gxkz17cGBSl3qwW5IQe5UBsIOpZkKpv+9YG3WAgZTyIysFB5?= =?us-ascii?Q?ImZxFeEAA4YSg5lVdsbxn6F89nI/BXQj/C0rqR65iQp1r6tciSvQW9q0+1s2?= =?us-ascii?Q?iLJDWD02KA2mynn6oJolg31jXGDE2N9URoanGYughLyfZCdphe5ZV+1TPxBS?= =?us-ascii?Q?k819iaPVVQBXOHHu7Ggh/vh6B1m3LKKL3vGKHp324QBdS+F3Fs52vhoq/k3a?= =?us-ascii?Q?x8QTxP/FqAE8wB/LTImAkJJpWWP5JJQpz1sWF6ohHEHBGwzoetzJq3dXUgHw?= =?us-ascii?Q?du6qWKgJWFfiOLXMD42DsgFLqL69/YPwdzfUTtPKPyOFAnfDrbiEodyEkYIF?= =?us-ascii?Q?G8oPxHCMQTWs4D1tGl10KL/o79pk8dM4HEHtdXPJqcRtm/vh5Udi0UGOzKlj?= =?us-ascii?Q?8VEbp9MWoy7Gdnp1EnOkfu08uGENr2QzmhAA92flUmgkJfB+ZzOyP7hwrh+t?= =?us-ascii?Q?f7ez4/mp4B+F0zR2H5MHtxa8IsyBtdvB+Nc+xvCRmC3kJadkMIzyFkxJYB+K?= =?us-ascii?Q?0xk5SczdCWBpNgKjqGzvsExYSwWkaOte+7CNAXFB1tneBRM/n0qPv3ctkJ1a?= =?us-ascii?Q?6i/tNQaVYcCZnjcQ2IBrJ0RXnoL0xf0ncfDTDDORdXuh7qOZ89nW/d6JU2kT?= =?us-ascii?Q?1/KtMQcbMMz5rILzalMvuPo0vPDErj3jZ4/uwyHZuQQaaIi4ijcqtpxb8gSD?= =?us-ascii?Q?ZQ3VEjfU4LuLSp7fHDz9RWHbQP3fXCsbE7No6Sz2Gy9WRyWuGH7qwsY+Z1T6?= =?us-ascii?Q?7tqrvW61PJWvsH7reOrAlhAp/eJixmnI/MeNzGHQIXd5lzte3JEvOIRr7EKk?= =?us-ascii?Q?Z5eUkbsreLdUcCstJGXO/4WziZ1FCz0iVMYa9x/qbxO0dPQWOCtM2JX3lqn2?= =?us-ascii?Q?J/NmsE5lZ5nyBbcv1hVIZfqJLK61jkXQMvnHqIZqhkG8FHOpWCQjsCT9xAzb?= =?us-ascii?Q?35bP0+qUygQYrM/i3keOFNAkVM23wjfzD01HcVbVL8wLDgO0/nB/jPr91+cW?= =?us-ascii?Q?IHPozXotOH+mu9L3Y1wT9PySWimNVaYddR5l3Az+wAtFQDHjcgmdkhjXPr8H?= =?us-ascii?Q?dquin4maSJ52PQLnUjmjUgp+Gd5avm5aS937cpoz/rZR9bb5W7FwVZVNpImS?= =?us-ascii?Q?JAN4AQfKZvec6yP0D4mtwFGJNea/d+USSVLycXut1RsS2k//KQVQblmu4SCJ?= =?us-ascii?Q?45JvZARbTcF+oF5C1FgwW5xCqBNqioqB2Nnq2EzqtPxZVAgdhGE1fYfBAXaz?= =?us-ascii?Q?clMFMV5rI39EuOfhvqqrKl7NMnUHyt62GY4QX7o3r5fYIjyk0UFR5I2R94vr?= =?us-ascii?Q?KzYCuw5IiACXlU8VLaZOAkM6ZGw0eg8Fn0OFJxWepkiLGfnSWSd3CyASUdxE?= =?us-ascii?Q?fO8JLuvaiQ=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: de950f6b-3b24-4c9d-4aa6-08de4953a579 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jan 2026 16:34:34.1609 (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: Lyc/SI1kejonyCKSQ3f4Ee+rvLqQyE393qOXL0r6PyK8IHg0MkK+lTtCsekYZIl8EFGuULzr4CKKzkldcDoiJg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7974 Content-Type: text/plain; charset="utf-8" The WakeOvfIsDeferred code path in __call_rcu_nocb_wake() attempts to wake rcuog when the callback count exceeds qhimark and callbacks aren't done with their GP (newly queued or awaiting GP). However, a lot of testing proves this wake is always redundant or useless. In the flooding case, rcuog is always waiting for a GP to finish. So waking up the rcuog thread is pointless. The timer wakeup adds overhead, rcuog simply wakes up and goes back to sleep achieving nothing. This path also adds a full memory barrier, and additional timer expiry modifications unnecessarily. The root cause is that WakeOvfIsDeferred fires when !rcu_segcblist_ready_cbs() (GP not complete), but waking rcuog cannot accelerate GP completion. This commit therefore removes this path. Tested with rcutorture scenarios: TREE01, TREE05, TREE08 (all NOCB configurations) - all pass. Also stress tested using a kernel module that floods call_rcu() to trigger the overload conditions and made the observations confirming the findings. Signed-off-by: Joel Fernandes Reviewed-by: Frederic Weisbecker --- kernel/rcu/tree.h | 1 - kernel/rcu/tree_nocb.h | 35 +++++++++-------------------------- 2 files changed, 9 insertions(+), 27 deletions(-) diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h index 2265b9c2906e..653fb4ba5852 100644 --- a/kernel/rcu/tree.h +++ b/kernel/rcu/tree.h @@ -301,7 +301,6 @@ struct rcu_data { #define RCU_NOCB_WAKE_BYPASS 1 #define RCU_NOCB_WAKE_LAZY 2 #define RCU_NOCB_WAKE 3 -#define RCU_NOCB_WAKE_FORCE 4 =20 #define RCU_JIFFIES_TILL_FORCE_QS (1 + (HZ > 250) + (HZ > 500)) /* For jiffies_till_first_fqs and */ diff --git a/kernel/rcu/tree_nocb.h b/kernel/rcu/tree_nocb.h index e6cd56603cad..daff2756cd90 100644 --- a/kernel/rcu/tree_nocb.h +++ b/kernel/rcu/tree_nocb.h @@ -518,10 +518,8 @@ static bool rcu_nocb_try_bypass(struct rcu_data *rdp, = struct rcu_head *rhp, } =20 /* - * Awaken the no-CBs grace-period kthread if needed, either due to it - * legitimately being asleep or due to overload conditions. - * - * If warranted, also wake up the kthread servicing this CPUs queues. + * Awaken the no-CBs grace-period kthread if needed due to it legitimately + * being asleep. */ static void __call_rcu_nocb_wake(struct rcu_data *rdp, bool was_alldone, unsigned long flags) @@ -533,7 +531,6 @@ static void __call_rcu_nocb_wake(struct rcu_data *rdp, = bool was_alldone, long lazy_len; long len; struct task_struct *t; - struct rcu_data *rdp_gp =3D rdp->nocb_gp_rdp; =20 // If we are being polled or there is no kthread, just leave. t =3D READ_ONCE(rdp->nocb_gp_kthread); @@ -549,22 +546,22 @@ static void __call_rcu_nocb_wake(struct rcu_data *rdp= , bool was_alldone, lazy_len =3D READ_ONCE(rdp->lazy_len); if (was_alldone) { rdp->qlen_last_fqs_check =3D len; + rcu_nocb_unlock(rdp); // Only lazy CBs in bypass list if (lazy_len && bypass_len =3D=3D lazy_len) { - rcu_nocb_unlock(rdp); wake_nocb_gp_defer(rdp, RCU_NOCB_WAKE_LAZY, TPS("WakeLazy")); } else if (!irqs_disabled_flags(flags)) { /* ... if queue was empty ... */ - rcu_nocb_unlock(rdp); wake_nocb_gp(rdp, false); trace_rcu_nocb_wake(rcu_state.name, rdp->cpu, TPS("WakeEmpty")); } else { - rcu_nocb_unlock(rdp); wake_nocb_gp_defer(rdp, RCU_NOCB_WAKE, TPS("WakeEmptyIsDeferred")); } + + return; } else if (len > rdp->qlen_last_fqs_check + qhimark) { /* ... or if many callbacks queued. */ rdp->qlen_last_fqs_check =3D len; @@ -575,21 +572,10 @@ static void __call_rcu_nocb_wake(struct rcu_data *rdp= , bool was_alldone, rcu_advance_cbs_nowake(rdp->mynode, rdp); rdp->nocb_gp_adv_time =3D j; } - smp_mb(); /* Enqueue before timer_pending(). */ - if ((rdp->nocb_cb_sleep || - !rcu_segcblist_ready_cbs(&rdp->cblist)) && - !timer_pending(&rdp_gp->nocb_timer)) { - rcu_nocb_unlock(rdp); - wake_nocb_gp_defer(rdp, RCU_NOCB_WAKE_FORCE, - TPS("WakeOvfIsDeferred")); - } else { - rcu_nocb_unlock(rdp); - trace_rcu_nocb_wake(rcu_state.name, rdp->cpu, TPS("WakeNot")); - } - } else { - rcu_nocb_unlock(rdp); - trace_rcu_nocb_wake(rcu_state.name, rdp->cpu, TPS("WakeNot")); } + + rcu_nocb_unlock(rdp); + trace_rcu_nocb_wake(rcu_state.name, rdp->cpu, TPS("WakeNot")); } =20 static void call_rcu_nocb(struct rcu_data *rdp, struct rcu_head *head, @@ -966,7 +952,6 @@ static bool do_nocb_deferred_wakeup_common(struct rcu_d= ata *rdp_gp, unsigned long flags) __releases(rdp_gp->nocb_gp_lock) { - int ndw; int ret; =20 if (!rcu_nocb_need_deferred_wakeup(rdp_gp, level)) { @@ -974,8 +959,7 @@ static bool do_nocb_deferred_wakeup_common(struct rcu_d= ata *rdp_gp, return false; } =20 - ndw =3D rdp_gp->nocb_defer_wakeup; - ret =3D __wake_nocb_gp(rdp_gp, rdp, ndw =3D=3D RCU_NOCB_WAKE_FORCE, flags= ); + ret =3D __wake_nocb_gp(rdp_gp, rdp, false, flags); trace_rcu_nocb_wake(rcu_state.name, rdp->cpu, TPS("DeferredWake")); =20 return ret; @@ -991,7 +975,6 @@ static void do_nocb_deferred_wakeup_timer(struct timer_= list *t) trace_rcu_nocb_wake(rcu_state.name, rdp->cpu, TPS("Timer")); =20 raw_spin_lock_irqsave(&rdp->nocb_gp_lock, flags); - smp_mb__after_spinlock(); /* Timer expire before wakeup. */ do_nocb_deferred_wakeup_common(rdp, rdp, RCU_NOCB_WAKE_BYPASS, flags); } =20 --=20 2.34.1 From nobody Sun Feb 8 00:11:54 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011026.outbound.protection.outlook.com [40.93.194.26]) (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 CC20222756A; Thu, 1 Jan 2026 16:34:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.26 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285280; cv=fail; b=BAzL/yjLGR/oHDuyxlKFJ5HtNUn01pMZbmNifT24/R4enI7ezN3llc3CRXnDvUBJ57ak6aiWX1JyQdrDO/+yIzl2yWlh/8vHRMW1rF2TkmvFw9aexBVygE6cGdEIKFeyPHmKhFIQuf/zoPPINz4UBhmha2BeBJkPtoNIDWKTKLs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285280; c=relaxed/simple; bh=90WiF5dM5M8Bno21M8A0111k/0yhFtigc0Gixt1ly2g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=sQ1D20sf7aknSHh9uPBPvGh7YhRG+5ZIe2Cix+tNaZTNVi/OBT8VjCHxj2UoRcqY/YSC+uOiTnDMdo1Wlx4PTnpL7TwPamB0dvq6eAdCUfBasVXb4ZbCtDFvKqTgqf2rSPZ0iDuTbfreb9IgYGf9SNNfycLE3LTqdVBhXmk6i2k= 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=TgXuPX+E; arc=fail smtp.client-ip=40.93.194.26 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="TgXuPX+E" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fRXi7+ZxltxXAUME58kVOOp0RENfhPMfKKXESCh5Q0UyodISPgVYb+vNY/3xZUpjp1z6SPLEBBgOl8AfwJloi4KVonZ8RrYXfpLCsGuX4I17J9+6XFe4/CzzgXKg7EQCsB+51MLSrh0k/JRBpRikX2Fd1sPBYVQG6t4f+3LHQ9sUETRoNkzUSWu3lv25pkSSA+d8EunlqPXTnktS3s22ANgLj11Ul6jheklUb4ksZuexnIiSfmU3AGTx+gRFaxXxZc/a1h7lnamqG9DXB69dGwAQq5H8cqfFJ4Bk2kAkGi50ROAWY2gakB2tJJOu4nEGRBV/IxhVORobaObX+N3SmQ== 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=iMWVcUXVqS/HkO838tchoY3CuPiBkWabieK5F8nOMHs=; b=YwQ33ZiXcj/Ku//NywY/DDDb87IyRsAFGANEwwATe5j+oOsLijFKYYWpsAoH9AU+IIESHeNJiyFCwwytv6YKI//UBoUu3pWBMgm8bCgMef5jl1nI+wf8ityR2/CEXInBf2faN4A/vAU6a+df6hW/bNX003eAPYZ9JXVneECTiETiyBzaFUSLHH3lplZuAG+DB9Hzvp3vAsn+ySmwo3yDyw++sbBoTewngavFU7yBdhNzTIPl/NV8nKW5jPiYTKtcEZPDxemYIn1AmyxC5VTFHBsVZrfPCFJPvZfvEwMfKyVopw5TnGCwyUOWirpKJUNV6pUeJob5jwxcYZnOw2kHwA== 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=iMWVcUXVqS/HkO838tchoY3CuPiBkWabieK5F8nOMHs=; b=TgXuPX+Ebhu2PFZ0G+dts3E0ykg2Qh5XGerTz1H+Yc1eaKk0jYgDnb9aTpw4LyXexXho+5we8S56GtkYzG5akB58y6ItD8VjwAdosabdVl6hfDn2ZQyFBte1TDr2i4+JLdXQrZPbB6o3AmEFiKJzCkvet+NPUNfHggHzMBIqyi7rIvLBi1Y8701FqO0+c6PRiSYtMq6F9cGZba/PcnI8lyLJHB1IyqOBabFcTPOvDmn0S3nEmoz1ZdFjFtztYdU3rkfIjY76UjoETjgOE7JnKb85otv+lc8e9q5jseJv03VcHnO0IJdjRIClONiy0epxRLZeroVL6H1rkdRW01rbdQ== 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 SA3PR12MB7974.namprd12.prod.outlook.com (2603:10b6:806:307::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Thu, 1 Jan 2026 16:34:36 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%2]) with mapi id 15.20.9478.004; Thu, 1 Jan 2026 16:34:36 +0000 From: Joel Fernandes To: "Paul E . McKenney" , Boqun Feng , rcu@vger.kernel.org Cc: Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , Shuah Khan , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Joel Fernandes Subject: [PATCH -next 4/8] rcu/nocb: Add warning if no rcuog wake up attempt happened during overload Date: Thu, 1 Jan 2026 11:34:13 -0500 Message-Id: <20260101163417.1065705-5-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260101163417.1065705-1-joelagnelf@nvidia.com> References: <20260101163417.1065705-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0253.namprd13.prod.outlook.com (2603:10b6:208:2ba::18) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR12MB8059:EE_|SA3PR12MB7974:EE_ X-MS-Office365-Filtering-Correlation-Id: daa98f79-c645-4806-aab8-08de4953a699 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?SuLxm92k2f/w2tAOQfVwLU/6DcM8UW7fomJpSBGKJy00+rSj2Ay8jNlrkHi8?= =?us-ascii?Q?t9dmbeMcsuLmIq0aZ21KzfiCmgi1c6EIzTxQKL/A0x1zD1dfarwxtvq7fIfT?= =?us-ascii?Q?bMFoYwo1lofQ8U0iMtks9NpV+1LUNrgbSusUMhYgezgryV5M+tByWoWK0pEx?= =?us-ascii?Q?DCs3xhmbaJU2vwWhfAL5MkIPpoO0GJjLnd4I7gNG6o9FxH9VlyIf8+TmVwNs?= =?us-ascii?Q?GKK5PfzuBTib6J/JlC7YoOxHHZH6K61ypemhA8Dm6ji3JjZYELgvuvDF1PUa?= =?us-ascii?Q?XLUvVJHL97BHrOlhbDTT6hVLuMeMBuQTZPN8qdzPqQn+dbM7MGvrolSplCcj?= =?us-ascii?Q?yrwZbCln/oDjtUbR0zSRNZdufjLNHsyaRmV4nDmWX7bKf7oLrG3cygbdSN/t?= =?us-ascii?Q?tBp+iAN1WolrMTPx2QnUA2A81WargnOotJoxoXIYTJpiEP2dArNpNk+NIlSv?= =?us-ascii?Q?s2eoAMAab1D3gRaT3qDaUdfvLecI3hwx6k55mDZL6lybW1qj2wwPUAjBYnuT?= =?us-ascii?Q?UHl/etZHUmSEdrur26/pz1Q57M+vF9aSfBlwvUKKHfcEF5HZza5BrIpD2u/b?= =?us-ascii?Q?Pz3OyouWtMeRZ+zV9EtO/Efe1j8tY6a2pcWgR88DZKLwlntx6piVz+x0JUh6?= =?us-ascii?Q?4MeKTAhjZEaiD86mzMIpNFw3qe5dnBtlt2V0aAMoxUM6zVgo4koiUk9x49es?= =?us-ascii?Q?Mz48i1waBAzRxQNz/gnIlMee9ZVtuySZe03T0Hy2hqhZfHing+Ei0fJOC1n+?= =?us-ascii?Q?9rqk/Zj6qINBmepGDt4baYupxe71FSSySsgonR1eMItpfB7W61S8WKarsZRK?= =?us-ascii?Q?IxpSJnhrOZZriLKnx6YPryObQ7Cycz7El//KXbuMPSdvSVNvR1COWvWkx/6U?= =?us-ascii?Q?zVkMor/Ho648zjxtM5yBro0bomtS98bQA1b/RexxHUSzTz4ZNUqUEbH4atWM?= =?us-ascii?Q?rA/BpFIZ8wvDtFVGP53d/z8nXlQzeZ3HSsHJOnkCPAeKr+cp1Cf79ufzreQM?= =?us-ascii?Q?HEOW90k2XWECQeBpw3aA6sNRYzIU5x94ZwwClTV6mLAoVhhDmxKoHXhYL40b?= =?us-ascii?Q?sliEpp0JnK3ypEZt85aouSHPHD5DKVzSbNQ5zxJmRym3jB6TXrUCRSF/uy7p?= =?us-ascii?Q?DOjkzI5EwEGzYJDYnFv/3BYS9oSp0Dz/IRUb4zeozmeBeNuoj4npSwKfZ0ib?= =?us-ascii?Q?2yj/sAcgkTD3sKvuxvd5N6eTgf+62MQpMkUC9IaHASV2Vwz/YOBabLMepvRP?= =?us-ascii?Q?EGjiLq0iHQOhBMl4iG2QCkSGKQ7gRRYko2vzNtkzsc/fuW9o3O8y+Zv3RqWM?= =?us-ascii?Q?Xi2WpU2wlbSTFbTVCC3UEV6gC1KMDpy9NkjoZjwitcdo56BVXAh2iNAMp2LR?= =?us-ascii?Q?a7QG5ZylLVV2MRSB2x3smpzh+jZKmda/zMaoHG/BO6PzvvfLscJn4NEamIg8?= =?us-ascii?Q?0uDQszIeNVgTjvsIk3c3TMF/4VCiP6K2?= 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)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?NHfuOogDbesaIhKL3NlRF3IkWhiLHLHp5BTq9BXhZdMaBYC5HWKfb6Jyw5li?= =?us-ascii?Q?Q1o7EvWKvvmC3lb36LziEyhXJgZ5yMcad7WIfcDPeCeNvkCtqGYc5LpTmCUK?= =?us-ascii?Q?2yaLv6O1c85StQA0IAtPyd2DetS/6Kq/PPffzmdoVpbu25xgVzmQNLg/94wg?= =?us-ascii?Q?PP105bdumxXtRy3uHfidL2wGf6q+NtoMMt/WDq0jpYng/rvgdDiiMCWWVXzP?= =?us-ascii?Q?r5O/fUX3ZQkmF6/P4MmbMeDaGdkA2GG0S8vyNmpfWlcbQmGuERsf6zZz6GOf?= =?us-ascii?Q?3DBQsa56Hbq3AEBXS+L+j6A2xM/CcI6MAZildFm/isKRrm3Kt5FChBvTJP+n?= =?us-ascii?Q?eWv49zQ5qrmlM/1l+pbx9u5nSIdmxV6913jvS5bRwtM++oTiYid78jVOw+PV?= =?us-ascii?Q?vOUEu2eb+o1iH5+0xbt5z6Pniu1Cnh1MJGdRLLxXlohHyoDvV9bJLvgOgTEe?= =?us-ascii?Q?dI5TSKzh6SMY7aF8OO4ElqLUIH1z40QeYYlZRfKckiMJJIaGu8qjXx2CSD5F?= =?us-ascii?Q?2qH9sE/5DYvd0JJcV26XSJDv+kcU8T6Qq8ONx2YmAYxMlxI2V/VSYIJ8mHPO?= =?us-ascii?Q?zHoU6CiXqF1OifwY0JwXdRMfOU7mrP7J+3l7Ml09Z07WoE522zNVVvZ2IiGv?= =?us-ascii?Q?yyo+G96zMtyAJ2Qmlzo+1zUlu3YsGUBzoj7+TMhw5uD6IRpkHsIyGb8hs5ob?= =?us-ascii?Q?jZ+8RhmgE+OkKIEhERs9v4TT6GM6o/QF0Ju3rgSHqR6bwGqm/VaBbkH69B5h?= =?us-ascii?Q?4kzVBJWab9UyxLiw6hJ0hUHerbMp4tetvnD3+izF6dOuY2QyvDuoFSYIrgwr?= =?us-ascii?Q?g7KsR7HwimwVngggSfXY+HgZ0p48qqmkYCK3QSI2hk79QvIirWKgfVPfGId4?= =?us-ascii?Q?sn3yhifxl6QKbHfnV1LpRFRQz+TCIkwM4cKUVgDACjFRuUsJNJ8F7Y+NmWxb?= =?us-ascii?Q?Gksqflii2tIGHP4VBSKbJLrCXlc9mPfxQ3JkW3PYmNVWbuQeaPgqeNt6FiFp?= =?us-ascii?Q?3vZMCyr9+gKkboYMTLcEH6qiZCMSvi+fqUTIIcy7uuvaf55wqtP3g5TbdcSm?= =?us-ascii?Q?791jArHSxgaoHtuomCfYsXMfWD0YTpVO032BedmvqmYnWmyddYT4MaLgHK6U?= =?us-ascii?Q?TXTWkzGKnXUD/txYB+Vj8qg9BbbzrdJ4VRCLSICDVbSy0bKNs99Js7WD2MIa?= =?us-ascii?Q?5zkjdGbaFoJh1AjpjLXW8761Z8iTEO12WvUPGDVgyjwgVfBNPFidDLt55Eh+?= =?us-ascii?Q?m7FNi990VRSjxdI0AU2xilNjbqU7uimjAQ21/29HJGj5djjj4U1H8ipLCqb7?= =?us-ascii?Q?N4HYa3ImmALEwoHHwqmXNHiW/2nSh23Mzw+Dt6SYPsF/qfmpswbkZvmyHYG9?= =?us-ascii?Q?Wo1mo+UlaVYheLj85t21/3kWEmJ3FT6d0cdlEYXQyo9qfHWkYcgODEQ4+v3d?= =?us-ascii?Q?DmsyYH84EzzJ7NdwMfMGhArNfRFSazAC6CUtBLSgI55u8p+PQViYcDBYfary?= =?us-ascii?Q?KuaoOfjeQHSZ2YOnqw3+QsChci12nVD5OXvDpYzZOZ1zxejf7jIgNrUMjBal?= =?us-ascii?Q?csHr08K3u2z4TqTcx8E/uGdasMYZzftXSE+yTf0FyPBpv2bduuch4lg9nXi5?= =?us-ascii?Q?VSUnPtFG3Bg5kGJKkSB8SN2E2G7bRR2dvccuejzcYWtu0lI4xVNoXzbaMxel?= =?us-ascii?Q?d1pAR6RryoEYA2cOz+U7Nvcilda419m1bPLItZF8ZTTaeTnIQca4a4G9+rhm?= =?us-ascii?Q?tLNPC7NuDg=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: daa98f79-c645-4806-aab8-08de4953a699 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jan 2026 16:34:35.9935 (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: oqYOKT2N2mWEor64jcdMfn1IOPZvfbJ6UJSrLYJqg3JYhQKZ+kZ83if5pmGCNl5+oltAt/UUURxQ6BNq9InoJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7974 Content-Type: text/plain; charset="utf-8" To be sure we have no rcog wake ups that were lost, add a warning to cover the case where the rdp is overloaded with callbacks but no wake up was attempted. Signed-off-by: Joel Fernandes --- kernel/rcu/tree.c | 4 ++++ kernel/rcu/tree.h | 1 + kernel/rcu/tree_nocb.h | 6 +++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 293bbd9ac3f4..78c045a5ef03 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -3767,6 +3767,10 @@ static void rcu_barrier_entrain(struct rcu_data *rdp) debug_rcu_head_unqueue(&rdp->barrier_head); rcu_barrier_trace(TPS("IRQNQ"), -1, rcu_state.barrier_sequence); } +#ifdef CONFIG_RCU_NOCB_CPU + if (wake_nocb) + rdp->nocb_gp_wake_attempt =3D true; +#endif rcu_nocb_unlock(rdp); if (wake_nocb) wake_nocb_gp(rdp, false); diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h index 653fb4ba5852..74bd6a2a2f84 100644 --- a/kernel/rcu/tree.h +++ b/kernel/rcu/tree.h @@ -257,6 +257,7 @@ struct rcu_data { unsigned long nocb_gp_loops; /* # passes through wait code. */ struct swait_queue_head nocb_gp_wq; /* For nocb kthreads to sleep on. */ bool nocb_cb_sleep; /* Is the nocb CB thread asleep? */ + bool nocb_gp_wake_attempt; /* Was a rcuog wakeup attempted? */ struct task_struct *nocb_cb_kthread; struct list_head nocb_head_rdp; /* * Head of rcu_data list in wakeup chain, diff --git a/kernel/rcu/tree_nocb.h b/kernel/rcu/tree_nocb.h index daff2756cd90..7e9d465c8ab1 100644 --- a/kernel/rcu/tree_nocb.h +++ b/kernel/rcu/tree_nocb.h @@ -546,6 +546,7 @@ static void __call_rcu_nocb_wake(struct rcu_data *rdp, = bool was_alldone, lazy_len =3D READ_ONCE(rdp->lazy_len); if (was_alldone) { rdp->qlen_last_fqs_check =3D len; + rdp->nocb_gp_wake_attempt =3D true; rcu_nocb_unlock(rdp); // Only lazy CBs in bypass list if (lazy_len && bypass_len =3D=3D lazy_len) { @@ -563,7 +564,8 @@ static void __call_rcu_nocb_wake(struct rcu_data *rdp, = bool was_alldone, =20 return; } else if (len > rdp->qlen_last_fqs_check + qhimark) { - /* ... or if many callbacks queued. */ + /* Callback overload condition. */ + WARN_ON_ONCE(!rdp->nocb_gp_wake_attempt); rdp->qlen_last_fqs_check =3D len; j =3D jiffies; if (j !=3D rdp->nocb_gp_adv_time && @@ -688,6 +690,7 @@ static void nocb_gp_wait(struct rcu_data *my_rdp) bypass_ncbs > 2 * qhimark)) { flush_bypass =3D true; } else if (!bypass_ncbs && rcu_segcblist_empty(&rdp->cblist)) { + rdp->nocb_gp_wake_attempt =3D false; rcu_nocb_unlock_irqrestore(rdp, flags); continue; /* No callbacks here, try next. */ } @@ -1254,6 +1257,7 @@ lazy_rcu_shrink_scan(struct shrinker *shrink, struct = shrink_control *sc) continue; } rcu_nocb_try_flush_bypass(rdp, jiffies); + rdp->nocb_gp_wake_attempt =3D true; rcu_nocb_unlock_irqrestore(rdp, flags); wake_nocb_gp(rdp, false); sc->nr_to_scan -=3D _count; --=20 2.34.1 From nobody Sun Feb 8 00:11:54 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011026.outbound.protection.outlook.com [40.93.194.26]) (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 BD5E32EDD7E; Thu, 1 Jan 2026 16:34:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.26 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285282; cv=fail; b=DCUKaoxtVJOcbsEaPgWYctPIktDqjaVJMpEZgHHEVgFQsddOt2ItCcdT0UN+gcfNLVbF3ANHYJizT77T/AWwbrzcqteT9Xhkk8R7Aq3EPDw5Ljdfu2kfxLG9a//PtVKt1jZ63W+TKpcYGbhkVHLerSKuFxTiFSRtu7ZJbKEBSIA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285282; c=relaxed/simple; bh=KyF0xXKvBwAN+yiv1dgAfGAxaYaLnKvQedIJO5nqKRU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=FAiw4p+Xb/sal/1GOdedbBKC1jlq1Jq6uXYKcpc5wZDvkoNXA5VKxlC4ZpIhPOzIgKAsYoNOiKDlwZjfkZlt3UKtzkq9yfKT7FzkMPggiEyrhDofEU1fOsJ6VE5Fyz1o7+WVE1eWVCV6j4NuoIWPYqkpkWQ0Xf4E+c6inr4QOrk= 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=RBF+PYtY; arc=fail smtp.client-ip=40.93.194.26 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="RBF+PYtY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sywiqNMRxlNnSh4ydN6Fmtzm6bymzKv9AJ97F/mTJJIfo9otYaSJyV06sulP6KBRQxqVhaA6f6HkQHLZ2Rj6+gxxOYLEJoHG3Sf+2Jm28F7S55MYcjB1rIP3re9GgzC8AAhw96y7qDrND92xQCNqnqmjWOjNN8pbXtbAWdwoKFzejFU2pvXRAYZHEQnayN0EiALDbUc/oZCJwGg8rj/LqDoBdbRklwR2gG9HoYXz+jueP7jqmhmpfP/AsGWRSA2oO024wIAgx+k76aQDslDbq1U8Tx9aMHB4e2DDHUSd/hqQvFLZ3gaeZlx2WQNk6vULyRh1AKmbKOfCXUmWhzV9QA== 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=//zyC2NyEe7TuAV4RkC3qdrK/3/JJhsjQUiqoQdogJ8=; b=E1u+0jQSYn9kcR0Z3D7K+R3bONEQXtEBCeVawBbc8a1+GWcM0NvEmvP2g1OFD4qmu2+wP61+2rwV2rlRjg+RrDdifOdEXbZpxMLYjEVcr7NHROnF10DGwHzFWSyxkLlEo3DD0ZIEDDQ/n93UbUJwojFbXE0bmiT+ftasS7Awa01j4ZDQmwdoRgafhpp9GEvRgXT2sPnCdGkua0NS9aHh3tRJRW1rkAET4rJNINCbz4ba4NOCwF4uT+akaa8D2eocNjSnfZOC5mQytILw/P1sRMmf2o5zRnpUDXJmYdvYz6BlGakbO75gaSSGFgRPmnULxCdEwb2V4U9MrupRovb32A== 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=//zyC2NyEe7TuAV4RkC3qdrK/3/JJhsjQUiqoQdogJ8=; b=RBF+PYtYHMfMzw1ggntXgzw759Xb1EQlyQROzyEPz3TSsUILpgOAaX49wqZ/b3HQsgAwe+xq/Eqhi3kYBfO8UJ02bOzpVcWuJNG69I9e+r8f2X4kwtl+6Y2dmk5dXhiFGDi913ivaQIYuUhgLViJK0hPJBAmo9+RbDQ9KfiJ45V0wTWDg4ALxt/IDdvwxYFVCYO79ciJSfOBFv+mRhU5Ysy6wxTKEFL0buRsXQ2SuW0jfOzt1nL/8JtGeCWS3GYlFQkDTyeExn4MroXAPuawlNnSDWj6IW+WN4Vyp9BB5UBRWOAvb9b52xRcCcF3vUpfs/NuUVYDPGzFa1fjs1blcw== 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 SA3PR12MB7974.namprd12.prod.outlook.com (2603:10b6:806:307::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Thu, 1 Jan 2026 16:34:38 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%2]) with mapi id 15.20.9478.004; Thu, 1 Jan 2026 16:34:38 +0000 From: Joel Fernandes To: "Paul E . McKenney" , Boqun Feng , rcu@vger.kernel.org Cc: Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , Shuah Khan , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Joel Fernandes Subject: [PATCH -next 5/8] rcu/nocb: Add warning to detect if overload advancement is ever useful Date: Thu, 1 Jan 2026 11:34:14 -0500 Message-Id: <20260101163417.1065705-6-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260101163417.1065705-1-joelagnelf@nvidia.com> References: <20260101163417.1065705-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR02CA0032.namprd02.prod.outlook.com (2603:10b6:208:fc::45) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR12MB8059:EE_|SA3PR12MB7974:EE_ X-MS-Office365-Filtering-Correlation-Id: 423afa4b-867f-4668-deac-08de4953a7dc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?dDi7bh4Q4BzpIBnTSMvcIj61RN4ovmMCbRCn/XzCypShUG5KyxA2zyhx2xsP?= =?us-ascii?Q?SVc7iwZzChL3e1ObwTTbETmq+T3GLPvlKMB87c2LCaV7bEMKb4ibHxFUM0vc?= =?us-ascii?Q?0YJJyq85mK/oi3TV31ZgNHRac8BkiiFyRdPTtYqHG94w/KsxXVyNZiK/dRVH?= =?us-ascii?Q?wio2M5A5H8HSi5FPxTbz0UllXjkYPXxJGkzHIp1eRhE0xz2aJ0lSc39Vu8Dq?= =?us-ascii?Q?c4AWpSAXyOnAVxgPde85N4JHvnxnYyE51RjB/5xi6AXV8JuZmCatowOu0CVQ?= =?us-ascii?Q?lbzZhwV6NXAt0le4/o0oASI/4jhKiQv+dV1ybb5tDDoUkXuo0AZRUwvCfbCx?= =?us-ascii?Q?nQzzAdkpGcgCKTZvAudW4ya6MUs4S1yeI7oEgAJyDcLNDoDirmlr9KUkiFKV?= =?us-ascii?Q?MzglIvknjYaLTmHTGr7DlHd2S/Nb2VM7hKsyXkxC2EBi0/2cecPjn9A+Yf4g?= =?us-ascii?Q?LLBk89ICW/JTk5hCFfXBegI6+9kRlZ60foOxc1kZ1ugKub4hk61UmBFqaF0W?= =?us-ascii?Q?f9VDFeGow9hqEX17K7Ifz6UT2mgb81sYqIJw8ZNSbbfsRV2GTdZSr0a9YZ/l?= =?us-ascii?Q?nO2Du33UqhSMtDwQUtTdKCuSNk3m6jj24gKzNnzVAW0PE1Wc1ayjgcbVNRK1?= =?us-ascii?Q?xvuGsscrnJhObOSLXljwNLmlHLquZshrvTBD2b54Qd8bLej+DY599O2xqlZI?= =?us-ascii?Q?9JrwER5JAkuNr6p7aa4Khz6bPTIAKaIqEvil6/U8ktNTKryaEOfbhJpANNrr?= =?us-ascii?Q?8neQ6HH+rLJBtAT1JUzxH9cY2G40MAur2KtT8ubwrPX3BLLUrmgVJYxrPtiQ?= =?us-ascii?Q?i/NfP6DReDqLHPM40f0iqtdbal7WyU4iL1WdOznY9fg4NxugEiM2BqL9RCMA?= =?us-ascii?Q?607pVWxUwyawvBrjUq9NhdOYgi2Osm3bsMByq/0oM+Uq03AJ68hdnVKdNq2r?= =?us-ascii?Q?xt24svKXFT7dc6EeBu73JRvuVdb2qB6A/j2wwKBvABK2JOuLqROljqTRitK5?= =?us-ascii?Q?w2xZPICxNc+ExOAlG1WDI4p4sCc2yNWoQmcxnnH7Q1j9NgLL+8cpcKPJ0wa4?= =?us-ascii?Q?extgZYr9gSRQrIxUEzkvC4ZCiq3T2DH7gVwrhKzj1yxNzO+g227EhGPYsIUO?= =?us-ascii?Q?CvBUJn0LT40uus/Vjao9KavWEP3Ks8xsgBUk7kEl5MbXEzij6oEobELzgoVu?= =?us-ascii?Q?J+DNbn3LNTGJfuALTyfONN8lNR5cakWzGLhKlqy0885ALuk5K9ObW+V9OwGR?= =?us-ascii?Q?2cHhWjFHzwvmr587ra1XzPDfo+OWDrMUSWCS3MqCPmDpTA/YCqchJ8rPP9a3?= =?us-ascii?Q?IZYNdQQpcZlpxzGVGcyk5l//8KhR8Dbkzlr7G3KzbBRQ1tXnauP2aSentnfy?= =?us-ascii?Q?AybqD/4SBlZzuPKnJFtps9NCdS1Ngsr9tpi36Kw718nT/g6XvRTXmxpt4UMr?= =?us-ascii?Q?xLzGhiGQ3PRWgjUL4qEkh1M7o09saINz?= 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)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YcCjFQkIyOAP+BfTxV7R3zk43Vz2xGeWo7Jz+Mz+QZ3KxOPqH8P8f+k2T50U?= =?us-ascii?Q?O0v1Ka/jli1U38KzaVTB+p4stupexwYPARYUoIqb34zaHpKQqP7MKcEKsoso?= =?us-ascii?Q?OHcWJfmU3xcw3xXXTd5RHkj9FY35MShxfPEX3xQqJY72RMNBefUUgC3/ynVs?= =?us-ascii?Q?JY3wZvkof2XIdjD1i1Edp+1wA+08fvDc7cgsQa5XW1/3lrrelsznNsU1IrqP?= =?us-ascii?Q?Sc1MU8AvdhR53ydhao7VPQa6KBb3//i2Bysf7ihwtKbnC74+oBNbegcfieRA?= =?us-ascii?Q?T6VmUC3BDc8OeWL18F7v8e6khSv0dit/Ifnt9v8JbSeEFBFkifr+pu9A5fFZ?= =?us-ascii?Q?s3H55FGY5m03pkU3ld/s4T7dwuvFWowh55bCiSPnHuh4jQNOIRg72h7tDdOY?= =?us-ascii?Q?v4fZNXQdoFwNQWe0868nUvNYNL/Mj8JlOEjVCGaJiG4sy7ThOjAqxCdyGRVF?= =?us-ascii?Q?fPVlRKgrGQ2+ud7nKJwQXAH5Pz5yGZlBchl0Tms00uFs8VJqCUw8vfU18JvB?= =?us-ascii?Q?Oj59Mhy/OwTnKOk0yKhvh7HDHBxkctkkIJr3I7rFQJnVa6V4bVYtvxdWyv/6?= =?us-ascii?Q?1UtuTQAmKgaHXk5LStn6F1rafzkeejNkbWb4CX1CEw2d3OkAvllY8klpgzre?= =?us-ascii?Q?ykFDppEKXcTpnMvfEy8Y1zWgwrBe2+dWg+78CIa4gUB7riDIr2X/LE4t2n0T?= =?us-ascii?Q?8qWxk6N0uMIL/JcqJWtZejXxF8hvwe8n074muoVNd+5UK5vTCLvcTxjqTbK0?= =?us-ascii?Q?YDF45UNCpfsrUGpqrjq3lbct5ThrofJOYXFuQ0iieFJ6nITwAKP35alDNAGc?= =?us-ascii?Q?8zIKDcWV+aJOgQNw/FOUAoNUwEiZypWP7lVR9uqbpXyMpPQfOL+41LmBrMMY?= =?us-ascii?Q?VPnzS/bFtIyMD6AdnCer3oIXgI3syRNgeW3IIwIAMjui0x0Zj+C4fgLfGqNv?= =?us-ascii?Q?Z7njV4icE3Vdz9dPkgmPPhQjmtbwuSPGW2ANE7zaDVCJR4VgECaYDzHLhGJr?= =?us-ascii?Q?tI94+PX4evuECNgvPMtToNtcXB9bWrcA/vJomRL6Ov1/tq+Thkp3ptjiSk6D?= =?us-ascii?Q?YFF9VUWVzG/5nmKkgq2bSOOgQv451UXEeUAZF+CtiFxJPqXVvLgSGEXzshqZ?= =?us-ascii?Q?GeKRKsSayTWDqmIqqHnfyM3w9sMmJrkEJ5tqYc2vKslk+EI0rhFWK1AZ8T/j?= =?us-ascii?Q?Y06sLLxFUXMv+BJ7uumzzj5PZijKF4AlvlWrruhWupA47QzZMYGVhkU/Z5sC?= =?us-ascii?Q?IbAFzeBhM69TmaybN5eDxK4e0RSF//Lw1KlicuhvIXC7rgGlxAyhKvdZ/isi?= =?us-ascii?Q?NrLx68wkE+p+grtiLbUOZc8JhsJoEbTQ8GXOsaBVvIdcriRiul+EWhrSw8He?= =?us-ascii?Q?Zced6uWNOvmiywh5QGI7lAOGyYyzugBss5UeEnsnx6AFfPubanJTU05ikiPe?= =?us-ascii?Q?YiiBOLWo4HpVavfimpO2HADf0NR9A8noAtk+PL2m1lyldXgw3c7fgxNb8sos?= =?us-ascii?Q?+xvIeeepS1kVEsM5sSY+FKJJE4dkG59CpmounmHeCCnOAFGdaNPVJD12UEgB?= =?us-ascii?Q?WeaXObTzW2W/vyP0kVX9C294eQLD/Ceb3jg1eDPMmRef31BSrNZexh1ILZsw?= =?us-ascii?Q?tne5XoguFAeGgFDCtLdBAO4verKFWkDdRbNJwlRua2YUYMw6/ECFcaBT8yoJ?= =?us-ascii?Q?cwlFmW/W0wXa5H9Lu9K5BwDif35NrBn3eg/IlMm6fnswj+S8zf8yMOpzYz7T?= =?us-ascii?Q?6ryACi/Iag=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 423afa4b-867f-4668-deac-08de4953a7dc X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jan 2026 16:34:38.1102 (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: 7lSJmsVfzG1ZRjA57s5i5sZpRNsI5yUKDvYzvY3X0PCx4ldLh8cQLRUARNJdAdgeQjWvEmqI5dY8XGIT0XnBog== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7974 Content-Type: text/plain; charset="utf-8" During callback overload, the NOCB code attempts an opportunistic advancement via rcu_advance_cbs_nowake(). Analysis via tracing with 300,000 callbacks flooded shows this optimization is likely dead code: - 30 overload conditions triggered - 0 advancements actually occurred - 100% of time no advancement due to current GP not done. I also ran TREE05 and TREE08 for 2 hours and cannot trigger it. When callbacks overflow (exceed qhimark), they are waiting for a grace period that hasn't completed yet. The optimization requires the GP to be complete to advance callbacks, but the overload condition itself is caused by callbacks piling up faster than GPs can complete. This creates a logical contradiction where the advancement cannot happen. In *theory* this might be possible, the GP completed just in the nick of time as we hit the overload, but this is just so rare that it can be considered impossible when we cannot even hit it with synthetic callback flooding even, it is a waste of cycles to even try to advance, let alone be useful and is a maintenance burden complexity we don't need. I suggest deletion. However, add a WARN_ON_ONCE for a merge window or 2 and delete it after out of extreme caution. Signed-off-by: Joel Fernandes --- kernel/rcu/tree_nocb.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/kernel/rcu/tree_nocb.h b/kernel/rcu/tree_nocb.h index 7e9d465c8ab1..d3e6a0e77210 100644 --- a/kernel/rcu/tree_nocb.h +++ b/kernel/rcu/tree_nocb.h @@ -571,8 +571,20 @@ static void __call_rcu_nocb_wake(struct rcu_data *rdp,= bool was_alldone, if (j !=3D rdp->nocb_gp_adv_time && rcu_segcblist_nextgp(&rdp->cblist, &cur_gp_seq) && rcu_seq_done(&rdp->mynode->gp_seq, cur_gp_seq)) { + long done_before =3D rcu_segcblist_get_seglen(&rdp->cblist, RCU_DONE_TA= IL); + rcu_advance_cbs_nowake(rdp->mynode, rdp); rdp->nocb_gp_adv_time =3D j; + + /* + * The advance_cbs call above is not useful. Under an + * overload condition, nocb_gp_wait() is always waiting + * for GP completion, due to this nothing can be moved + * from WAIT to DONE, in the list. WARN if an + * advancement happened (next step is deletion of advance). + */ + WARN_ON_ONCE(rcu_segcblist_get_seglen(&rdp->cblist, + RCU_DONE_TAIL) > done_before); } } =20 --=20 2.34.1 From nobody Sun Feb 8 00:11:54 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011026.outbound.protection.outlook.com [40.93.194.26]) (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 DD5CC296BD7; Thu, 1 Jan 2026 16:34:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.26 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285287; cv=fail; b=AtjqgBvrBxOOC0W/zJAVa1cWWm18KKi/48JM58v5wMyWDDDSznA/stm7g3y+Gv/tJ4tUlDUL5vXR5inHvxFpOKnOfE1hs3wd2xw+oqqM1BgwHTDyL/U+hNlkEaCiBIg7l5olbJW9ST1UfcDIWuXpx3iqaad9iRzdsqQMfLTqxMY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285287; c=relaxed/simple; bh=IdS7+jwVBrpaoP8sGYwZA3BanhECuyH/Ft8lbdK1CZs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=H5Z9y1CEzPpkKXrgsyfyFXrjohH1rV1KpY1iyQExNbIMprGgY9T47gjMSsGLN1Z6FnuGsNfdVo+9JOqrQC5EoM5jn0Ba5gTF3cp6qk6bHyc0QukHYbmK0oINSPumWO4tTyb//sDl0QvwlqoXJhdjbh+rWNSdlEK+0uFXOAFHHck= 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=aTS4JLSJ; arc=fail smtp.client-ip=40.93.194.26 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="aTS4JLSJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qa/Gd8ABE57dOiUx1aMiVoJfehGK9tan3/Dn1r4LuRkCYbCr2tf6lk+MdNe3X/f56/Hvy/wZBQQsM11aOgENgDN3PYAvp5KwF850S0n88nnX+gCar5crHh7soNZaUrR1YXMQ50GNZLyP4Z/Fn+fkqSQO6mpBC7bAmNtwsVyfJgbKmNVF3CdfSCgAfLAMio7GTdcYaVgei9qC9hJKz+w+ZBlKA/ZhaTQgeKpZQzUdWG3l28N8woj+k/T2amXSVBS+lDaKk+hlgGlmJMVmGHHeqkcpgIpmj9jLXmT98UcaOhK71arMZXkfx0GkC5maI8xeqdPFHBacmi2sLVSDUzzPXQ== 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=jCbpNBOZM4gglPnaRjtqpNl/gmpnbAXbJB4hlRAsofM=; b=VRV4h911vwUOm2kCmw4FL5WwcIQ+kHmbBKQjgYqev6bw+9iB4eOCx+Y5bT6q4MVhWNuyJ7h22DXF8FBlgmQLhECoAhO9MUt6UDV6I2FC6ZXDlyVsPxwsJaq/UeYDKc6w8yQrN/7fq6IS74C7ppZY/ome+kpOo5TYUdxbKXrH8obgD+2Q1GclHlGD77NGiAqPb7oo8mXhk/Tt25kzn6qTR9YYE1nVWJXMKLCm/46+HPZGG2legdPeoJ9Ui7zDiE60V5SAbZ+wrzBlQipAAM8jFGpXenQqi0Pu/PzWzdzMV3Qbi9EtFgYsWSKPkLaxOHNTTz0jglg5TjDoWAu68dVQzQ== 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=jCbpNBOZM4gglPnaRjtqpNl/gmpnbAXbJB4hlRAsofM=; b=aTS4JLSJNjx7YrzqrhGG3ARnaV/4kroj55+nNp4ZakVei/BIVSl0qfcXaBJ0rOT1yxMqtKSTorZbRkC9Iu+WgKgXzIcw/D0bPydpZlRvo/QRA+huyP0qF8tlGvHrAUccR6nrdtBEd1+Lx7tTBpcXHyl9pIXk2+t3CH1fn9MYCL5TNf4LMBRfoTUCeGeL8rWMnCLRYPe9cBdtXGTx0bnLIgELGcIbscdN2SJDgaSp7SGno0e8KKl+sMxxvB8P8+X/krZxC6dmhcYyI6FzCLb7Qgq4C/p1Mq2JNwsl+zxR7Ek3TNXeygHJxdoXqhmyNYHAZzGlG2SFdkDDCaEtq1/jsQ== 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 SA3PR12MB7974.namprd12.prod.outlook.com (2603:10b6:806:307::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Thu, 1 Jan 2026 16:34:40 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%2]) with mapi id 15.20.9478.004; Thu, 1 Jan 2026 16:34:40 +0000 From: Joel Fernandes To: "Paul E . McKenney" , Boqun Feng , rcu@vger.kernel.org Cc: Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , Shuah Khan , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Joel Fernandes Subject: [PATCH -next 6/8] rcu: Reduce synchronize_rcu() latency by reporting GP kthread's CPU QS early Date: Thu, 1 Jan 2026 11:34:15 -0500 Message-Id: <20260101163417.1065705-7-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260101163417.1065705-1-joelagnelf@nvidia.com> References: <20260101163417.1065705-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0437.namprd13.prod.outlook.com (2603:10b6:208:2c3::22) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR12MB8059:EE_|SA3PR12MB7974:EE_ X-MS-Office365-Filtering-Correlation-Id: 98fade6f-4a81-476b-8dc6-08de4953a90a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?+ZfakHGokdkQpQIW4cOwVTKKXrk35mxvFnSy5ANXH23HGarP2PahmMcW/W8s?= =?us-ascii?Q?H9HwivtbS8L+3JjU+n4jylGzt8debsvYCS2fS8ZR8OzqO4yXvsncqF8ivvnV?= =?us-ascii?Q?BRofJHamNcwJ5EH2y7sthttXG6vaebYhh4KwzEH4GQmFjXRxS8VW3LTcOpoB?= =?us-ascii?Q?jeB/+B7vo7FW7Cfcbh8PywlXus2/VjIjeW3pd0kRGXbCc62ydZrsmzp/80Zq?= =?us-ascii?Q?V7T63XE+2hhXgHG8qpPCE3PkSz8pWA3f1eKK1b6mZP8T+e3FApJIROM+jPfc?= =?us-ascii?Q?XO/7JFyKNQiJTrAlV07nuaADDbc5twQqL+94Z2RTTAU+knk5NfoohAIUtMgp?= =?us-ascii?Q?EB0/kn0Oqi8roKn3HLQSp7pFM9/nGFWsIRo+dkeH0dQ/66l7mPcPEmbH5BwV?= =?us-ascii?Q?K3w2UbrJnNvr66D6PMohQ0UDI5ETBTuBMLCFDkLDb7d0wrVPpZljqoBhIaK6?= =?us-ascii?Q?LkqI9hQjXMYfy/r2iP4VMb2qZeKmmtYOR6k1pTLUI225c2gwnV9BP0Po5t7l?= =?us-ascii?Q?OqebR5LTY3SV6851iG3w+pa1goR4UkiWsLDVL1nb8y4oBWNtW7yC5c5Pn2HJ?= =?us-ascii?Q?jZuIW5KhcJ0zgmZMPyMYNidOf7qk5j9Mt/4uCO1DsRzcTgOzTxxfaOztXoxI?= =?us-ascii?Q?U8+kSFXkwPMfg2Nd7i+O3cVPvfvF+w4gZggTgSOsZen/SCRx38rpktuBA1lx?= =?us-ascii?Q?uW/6njIVQq9eKiay2iy1sQ8bz7Cz5oMgZSrUgbJLXN6HcjOkXSbGBcV8rbOb?= =?us-ascii?Q?7RVaVtU0MpBYfoP4z4WLMYHLLMnqtw6v+l4xr9kvR0T8W3aDDepbPwaxs6BQ?= =?us-ascii?Q?3lVMuFvryCHzM30Lub/cJsWSc13s/m4IH1aNpUZ95h9i+IK3vKdB5m49oq2p?= =?us-ascii?Q?ba3mU2iZylgqcAiaITcd5SNVNrAVT34lRPkkeBRFKTXeJAA12Cqq06kbMTpM?= =?us-ascii?Q?IcEUKfeZHmrwh2f+Z+Y5TAJwZYFaucyVbbKfVOcnkhAfK8mpVEoXleCeQGGX?= =?us-ascii?Q?g9Hnmej04bNhb8A3Bcm8lp6Tj2TgSmfwMeYqTxJmW0Aid+ThmvoKB0mF/cHZ?= =?us-ascii?Q?ehN+TD18AGzV3ekPhqNRd/S7AZasa1ToPrjFNmC1WNcnZpBDGAp+QOXe9aue?= =?us-ascii?Q?rVc5ea/gqpJ2P5A6IS45mfE2GIhx0RGmOvvWY4REgI7c+rWCXzWzXytJb19e?= =?us-ascii?Q?4sTdZkLbRVVg1um9Y2ZaxPmHIbwRwZ6kFHcu2llB3FMFLnHEyjCR+aoODSjc?= =?us-ascii?Q?2N3uEzIRcPax+sDfFsZRKIqVnGIz+AV/OLkQ/nwQunWEptZnrJuwhpKS0TId?= =?us-ascii?Q?8YzQ6oB6RacRePjhK8XdjWrCztSDtchbCTlcUsFzJ6k1g9lzLKREBexkTCHv?= =?us-ascii?Q?lBcJEn9T5a9aiXB4/RYmBus8FwZ4OwoR8yAVk+/+6i1CvY/NAjAAaZGU0jZG?= =?us-ascii?Q?CEInYZzEfUz9VuKNbUXVrqDIUDuVBfX3?= 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)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wINiP3mfi65BlIZPLLXDH27+MnsGWUOC7txDNRZMsfDgaCAanB2kDDZ04OaC?= =?us-ascii?Q?E1fizkLmLdIHj8Z8nMr2KMcVgT9cG52Qw3UaCsbnkja7XcOujKeK/XILrHoz?= =?us-ascii?Q?tao6jUrTrHTclkXCOwTjhdi2QMSkVaZYT84oHLc/TMutSfSgPC0nPOAwUTGO?= =?us-ascii?Q?J3hBL9lnOjBEwZmlL60D/2q+g9FyMPsVUQUOcW7Y5PbQk97vN40qgJ6sHG/w?= =?us-ascii?Q?d6Qlh4fDdm5IMJKHNJ78W/Adrk6S+0Db7NKeVeY9llXwe3V/+P6fp7Cbilhf?= =?us-ascii?Q?iaaM2ON/+Zbx8Ga8AWhJYr6WrezKakC8JHnt6TA7ag1RtIWfCAdJuhBx1Hb9?= =?us-ascii?Q?dRguzFJ+fq7EW3eCz5A0fFMOt9QJHPMl9+Tu8RQ4CGJmKIygVBDc40fRjdJD?= =?us-ascii?Q?8tpPY73mrnFGtUe2DsIz2/IKOeFh2slXSm8aZUQRWe/BfvQGBY+uyzBN5Ewr?= =?us-ascii?Q?hgVsoBcXzKOkepIUc5xvDAvtiFznr1OieFzxHV9tQMpdllgeCsTcBAmMkKcw?= =?us-ascii?Q?AQ5DEaGxOtIxu43dmDrMakRPLUNc642a7G6iZd7ogXOFzCrBUWS7gIfuCttL?= =?us-ascii?Q?LBZqvgCZfiQSf8sjh3OeaCowOFsxkPS+MuIfGbp0JfKbWAFXFk75HAhhQi7L?= =?us-ascii?Q?Bt4Rcg2fjcCqpyCLC8WoLclOZpnLCH+o7bWb7nSwPvtTrbwbZBjymWqq33hL?= =?us-ascii?Q?P/iUNoyX9jN7MK/ov3kbcggqpKEn4RBmPYOkFy/wCcGx3OfMUGfi+ZvU5diQ?= =?us-ascii?Q?udbnJM90ckQErWcVGBXF+zYdBmDWCHtxsG5q4Hp1VNC8cjWLCrVNwC7yomPi?= =?us-ascii?Q?7V6mnBu/YFrOo56yihq0LRcCgtLYYeu9hwT4Ei4LQWz1gVxyGnGgaaXzIn+6?= =?us-ascii?Q?8mV2Fc+NB1HHEPYsiKsqqpx40ZdgZENpOJPiHdp+VfcDyp3SF616sbV2JJa9?= =?us-ascii?Q?iXmtTy5AaU1WrCNJnJ5W3H5+dFjhStLzDDr2vxUYX8TJ9JLIQsa6w6W02FD6?= =?us-ascii?Q?rVwOC8S3816NQB3egEmRnaRvRyALPZA+xz51x37jSQTRsWFTKU/sAQxAo1x1?= =?us-ascii?Q?1XENnwFWuk8bSeireJZ2wXk5hTCOSSfcmxSIqxNgWY4BlahRGZtld4wcCsfT?= =?us-ascii?Q?A4iQ0mpMLNnAVgQBV+pw/DyVgfYuFmTPXCR86p2+osXV0Fus42DceYsHHy4x?= =?us-ascii?Q?orv9LC0YJOHHvS8AyNIOc6SzrD75h7soe+aEuQCOxDE0unzjxiTkt9aAAM+2?= =?us-ascii?Q?ITVLJnvgPYcKwmTC1brRNRruizIwOaktbX+I9WzLcTbhATPiRK91CDiSH4xi?= =?us-ascii?Q?s9o/WGn8uOnwGpqa3B69Ms7jJN0m40k/UhVlnlQ4NxpR4yol47XLHtiQHrJM?= =?us-ascii?Q?u5TewFgcrvxNxoOpE5Jory7ZidUgnQGlAQ4npJTsCrJMJIKaGtQXlxNXt45J?= =?us-ascii?Q?mLuZxdihRSe28P5/aCL2xUWH7pW6Zb/rsJxLkphzyE7OU9Rb0Szzf5uyGT3G?= =?us-ascii?Q?xdTK2MdtWMJPrRc4sRA/i6Pbwl9O98haElfyqzQTkuRE2MF0hg9KyVEWTYfr?= =?us-ascii?Q?N++3K7dk2B+07YNW8930ljIfNwhnvWLDep/y91GAKZ4BxsdC7Gjp4anB8pO1?= =?us-ascii?Q?PX7lMKO/rPdCWzLScEErk0H54bnkaDJZKkHNIhIdsKQOK4dLDvjuHsDCuWl1?= =?us-ascii?Q?L5z/RAAXiF9rYgFfYzF1WeUhhqc+KUpt9Lpc86anfoEI04BwIBh5mB6TD5MU?= =?us-ascii?Q?68Eij71Zdw=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 98fade6f-4a81-476b-8dc6-08de4953a90a X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jan 2026 16:34:40.0897 (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: +904GRJlEGb3PsPmE6R4ES98Vd5xSsz+60DB7jeQSSVwp/XHyo427HbTKBiMW9cHqbQ6JPuCZGjOYX3wSSlo1A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7974 Content-Type: text/plain; charset="utf-8" The RCU grace period mechanism uses a two-phase FQS (Force Quiescent State) design where the first FQS saves dyntick-idle snapshots and the second FQS compares them. This results in long and unnecessary latency for synchronize_rcu() on idle systems (two FQS waits of ~3ms each with 1000HZ) whenever one FQS wait sufficed. Some investigations showed that the GP kthread's CPU is the holdout CPU a lot of times after the first FQS as - it cannot be detected as "idle" because it's actively running the FQS scan in the GP kthread. Therefore, at the end of rcu_gp_init(), immediately report a quiescent state for the GP kthread's CPU using rcu_qs() + rcu_report_qs_rdp(). The GP kthread cannot be in an RCU read-side critical section while running GP initialization, so this is safe and results in significant latency improvements. The following tests were performed: (1) synchronize_rcu() benchmarking 100 synchronize_rcu() calls with 32 CPUs, 10 runs each (default fqs jiffies settings): Baseline (without fix): | Run | Mean | Min | Max | |-----|-----------|----------|-----------| | 1 | 10.088 ms | 9.989 ms | 18.848 ms | | 2 | 10.064 ms | 9.982 ms | 16.470 ms | | 3 | 10.051 ms | 9.988 ms | 15.113 ms | | 4 | 10.125 ms | 9.929 ms | 22.411 ms | | 5 | 8.695 ms | 5.996 ms | 15.471 ms | | 6 | 10.157 ms | 9.977 ms | 25.723 ms | | 7 | 10.102 ms | 9.990 ms | 20.224 ms | | 8 | 8.050 ms | 5.985 ms | 10.007 ms | | 9 | 10.059 ms | 9.978 ms | 15.934 ms | | 10 | 10.077 ms | 9.984 ms | 17.703 ms | With fix: | Run | Mean | Min | Max | |-----|----------|----------|-----------| | 1 | 6.027 ms | 5.915 ms | 8.589 ms | | 2 | 6.032 ms | 5.984 ms | 9.241 ms | | 3 | 6.010 ms | 5.986 ms | 7.004 ms | | 4 | 6.076 ms | 5.993 ms | 10.001 ms | | 5 | 6.084 ms | 5.893 ms | 10.250 ms | | 6 | 6.034 ms | 5.908 ms | 9.456 ms | | 7 | 6.051 ms | 5.993 ms | 10.000 ms | | 8 | 6.057 ms | 5.941 ms | 10.001 ms | | 9 | 6.016 ms | 5.927 ms | 7.540 ms | | 10 | 6.036 ms | 5.993 ms | 9.579 ms | Summary: - Mean latency: 9.75 ms -> 6.04 ms (38% improvement) - Max latency: 25.72 ms -> 10.25 ms (60% improvement) (2) Bridge setup/teardown latency (Uladzislau Rezki) x86_64 with 64 CPUs, 100 iterations of bridge add/configure/delete: real time 1 - default: 24.221s 2 - this patch: 20.754s (14% faster) 3 - this patch + wake_from_gp: 15.895s (34% faster) 4 - wake_from_gp only: 18.947s (22% faster) Per-synchronize_rcu() latency (in usec): 1 2 3 4 median: 37249.5 31540.5 15765 22480 min: 7881 7918 9803 7857 max: 63651 55639 31861 32040 This patch combined with rcu_normal_wake_from_gp reduces bridge setup/teardown time from 24 seconds to 16 seconds. (3) CPU overhead verification (Uladzislau Rezki) System CPU time across 5 runs showed no measurable increase: default: 1.698s - 1.937s this patch: 1.667s - 1.930s Conclusion: variations are within noise, no CPU overhead regression. (4) rcutorture Tested TREE and SRCU configurations - no regressions. Reviewed-by: "Paul E. McKenney" Tested-by: Uladzislau Rezki (Sony) Signed-off-by: Joel Fernandes --- kernel/rcu/tree.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 78c045a5ef03..b7c818cabe44 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -160,6 +160,7 @@ static void rcu_report_qs_rnp(unsigned long mask, struc= t rcu_node *rnp, unsigned long gps, unsigned long flags); static void invoke_rcu_core(void); static void rcu_report_exp_rdp(struct rcu_data *rdp); +static void rcu_report_qs_rdp(struct rcu_data *rdp); static void check_cb_ovld_locked(struct rcu_data *rdp, struct rcu_node *rn= p); static bool rcu_rdp_is_offloaded(struct rcu_data *rdp); static bool rcu_rdp_cpu_online(struct rcu_data *rdp); @@ -1983,6 +1984,17 @@ static noinline_for_stack bool rcu_gp_init(void) if (IS_ENABLED(CONFIG_RCU_STRICT_GRACE_PERIOD)) on_each_cpu(rcu_strict_gp_boundary, NULL, 0); =20 + /* + * Immediately report QS for the GP kthread's CPU. The GP kthread + * cannot be in an RCU read-side critical section while running + * the FQS scan. This eliminates the need for a second FQS wait + * when all CPUs are idle. + */ + preempt_disable(); + rcu_qs(); + rcu_report_qs_rdp(this_cpu_ptr(&rcu_data)); + preempt_enable(); + return true; } =20 --=20 2.34.1 From nobody Sun Feb 8 00:11:54 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011026.outbound.protection.outlook.com [40.93.194.26]) (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 8E7BA2EDD76; Thu, 1 Jan 2026 16:34:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.26 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285290; cv=fail; b=QNQh7AX0qVazpYID7OtiHjhLUbcxArheE2IAdowBY+gu5ILhvUeXT/kxchAwgh+/EtMMAu3sxoc5GfhKCbikSyU9kSFYykVFLBwqGH1JQd2Cxdn6elrNBzucOrLj109PQrT9pjaHhyNBFIDa5ORp177wY+Rcz625GIgtSIfteEA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285290; c=relaxed/simple; bh=RA3yiJ2qYtLwIa/F6I9RBtxOBJERYumC7zocNCkLsOo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=teVlW42MysBZrIEDiGuNeCa5L7Lr1onBFNufExyEFHEISSajor1mNXWxyf1qoP6MEJ6Wv2y6/LqdfqcjXJnje+Y48kZWxMIRjJUEDFUNuN5mMHWD5yTtqlvkh09YawZ4huxPQQBU6OROs+z+yis3c5/BxyRV+v3qs7P//3hOgtU= 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=AEz2aDyJ; arc=fail smtp.client-ip=40.93.194.26 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="AEz2aDyJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XkJ4eJjTwl13iP7tP2JxcV4yj8AZmOEe6xihzXTjaVUW36u5QETQ+bIgYlpZFqOCjqhr8YMuRie+qFlHsnV3sc2y4rXRnLZgZxMstdM3Nj1XlTIxXZH23Ph/SGOGcNBfX5uegPPt++XZrZPteqcs9Sr4AlQIIXMJMxBsuNCz7ze0feuJLBezQc5DSApurLZNGOhZEwgExfOhUjUl3c5PS6s2porqJTGyf2PGz05XktXPE6ZBrOfZW5/siMJ2OLUdI/iOvo7nRrckSoY3lIlhGCwHlzCHIePhIYYMrXm4Dzy2yVDqA1X7P+T0Ku0MDozW5qeC1typAFlf/uNWePr7OQ== 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=7w/Xii9SVflwtIJMwbvkeS0Tyvq9saaTwQ3xQHUOsxU=; b=VMOfSnBKAL8hNPC81lXbIb8fCFopw5V+LC2pYFIR06V/inWfPcU+fhGSsXz1TU1eBBQlBWjjmtMwcdXFG/Egz/DKYchLpervA4cn8i5e0BKgRH/de5/EUiVgrOxN9V/3fz1/5XYczBGBGGk+MDGWHPFI9hfjgp3v0UjQsvBJTw0O+zTzpCgysvOGHdzl3fOOd/0ypAr8aafXWFEPB3ARw0UfXcwpn6jpwhnw4TwhBX1X0B4ZGzBnCnUl9uc3BtErGVNkmacEKQXxvYHm7Xs4VW9q7fgXmZ1xMj/k2QZi/iJlg6B8XjUUtUf8bTGD2ZhpDoonrADWnw2NMU9RA1lxJQ== 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=7w/Xii9SVflwtIJMwbvkeS0Tyvq9saaTwQ3xQHUOsxU=; b=AEz2aDyJWhxu30qTufaEgjyDs4VrLQVJslK7UOmuAdAhALnKes5d+d8xgaZod5baqcXW07wrA1PE7J/C7HbfM2pbACTcLtxm7hK1VtATOWom3mmH3+HYENDJntea1g9y9ITA20EJLbuoIREcIseGFVxYaDzPsGyxlhNiFT09ZbeCKxSounK5qP7pO8lB0X8PMdEHibPtNMUzb24lYvUCnM+mnXE2W3PncD/gEY3SKTOj6l+bZWurqJ3O0H9+iIyS6+y7f2bDchNIk7R0Hbyb6E8YfnwjVvyxNIiAq6XY4DhtnQBhwKRISBQA24hNxK/8Mjmm4+nhiWPahLdPzDnT8w== 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 SA3PR12MB7974.namprd12.prod.outlook.com (2603:10b6:806:307::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Thu, 1 Jan 2026 16:34:42 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%2]) with mapi id 15.20.9478.004; Thu, 1 Jan 2026 16:34:42 +0000 From: Joel Fernandes To: "Paul E . McKenney" , Boqun Feng , rcu@vger.kernel.org Cc: Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , Shuah Khan , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Joel Fernandes Subject: [PATCH -next 7/8] rcutorture: Prevent concurrent kvm.sh runs on same source tree Date: Thu, 1 Jan 2026 11:34:16 -0500 Message-Id: <20260101163417.1065705-8-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260101163417.1065705-1-joelagnelf@nvidia.com> References: <20260101163417.1065705-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0429.namprd13.prod.outlook.com (2603:10b6:208:2c3::14) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR12MB8059:EE_|SA3PR12MB7974:EE_ X-MS-Office365-Filtering-Correlation-Id: 7e208f3a-62f6-49ab-85a9-08de4953aa21 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?x3w21IqPLL7HdJBZ876pIcRjNEvY5IKw8PrvXeXFTyQ02Hmr566Hteq15aCi?= =?us-ascii?Q?qsBDWbq7Si7Jmmk8L5BwKGfOzSCZfGy1jXe7OrtBLyv6FB3bp03AceT4xEUc?= =?us-ascii?Q?w/y5mW3M5zFqtnQNSbT9MtIx4KQw4mkK2vFsSpvTTpTC9px/1VMNE98VkiT5?= =?us-ascii?Q?jakNRecSUr7SA4c3RYC2pBbM8gm3uQevcBOFkanAy2HTL2E0UnQzlpORTz+I?= =?us-ascii?Q?/lUMMW0EmO0LJ+dTp1jYVe4TB5nogCq3NJWLzopBerTHx581lj6G7KSEuVKe?= =?us-ascii?Q?DlISnJQl9+pTTEsHwwTD0EnuRpMe73h9LBYKzZLImhy0LN5pwFZ7X1UshCKD?= =?us-ascii?Q?Hz3XYcqSc/zacdRlVCBxSSmG3ERqcY1sg/8R2TVgdLBy09wSZpq0rAiNDuvq?= =?us-ascii?Q?9nlzJPXqtqUq4ZaavPPUJ+B+i/SeDZSrBJFpQ0sS7tGsDyTNejQYHgYlWcWc?= =?us-ascii?Q?8EEXR6geu0RKa21+ayUe9U3r/XJPDj7fqagLkctIt/RNQ0e9Vxh4EZxdZdAc?= =?us-ascii?Q?Ws8TJWHKEC6t+RrRzPmlZR9KDhcLZKCiGuprPL9/7+6TJ92oYomoz5BoiNRD?= =?us-ascii?Q?8EV/F7igROHWF9H7M+n5hsWRCupu9NexjxzyGql7dC/bW34GS5qq7v8CrFig?= =?us-ascii?Q?hkJ8EXTGArCXAAeCAthN0xVY+YIhCzRDQMuOxISXcrPAdhEkRAdvRpDCy5xx?= =?us-ascii?Q?oPVXtEVTO0zph/DBBVH5sf9EwwguGrnXJS5DkaceOHL+Go42JTGkJ2b6E9bO?= =?us-ascii?Q?ZQKTi4tVROGKIWwCEoQV5rt+2SqIaw2MZwFJq225BTk8rqJsBUFrPIAZbxm3?= =?us-ascii?Q?+Zsyuqb9b+WNo5FbXUec3hSkWGUZnXAL8vCcnWNlj9aSpxD/bo/YQ1FN+Pab?= =?us-ascii?Q?lKXpxwo2GyXQoi9COfEuF/80C1lwX6Zhz2xBa5tnXRb7bX5yPI0IzmKwSvYq?= =?us-ascii?Q?hsl/EixWHOQ9qRn5OwFQG53oJmcwTkjEHXgwpGHKWb7YhMoAhAZaCmJKP8nB?= =?us-ascii?Q?yrDpfHyi5g9YS9loIOcaLyVBmRj6Idm41XRNObpxKq+yogtYPMXTTd/JnNVR?= =?us-ascii?Q?Al+2MtYNc6HLdTSPcxbgvLjKPvByOhYYZmfYdE8D4ri21GCD0h33vE/V4fRs?= =?us-ascii?Q?mMZXrnB6YelBCy0kBoO96UuZ4f8BqL5N7oRxFjfjCaCn65R04iKDdSXNbFck?= =?us-ascii?Q?jFdfXZeC78LhxOVZseVS9Fc/01CQUuXvz85kuHJ93DrFsqTnxFybGZr45Z3X?= =?us-ascii?Q?yRrOwqFa5xxcaUE8KbO0GSYP0i8g4WLHIvBdc93A8PF71gj8ewPbOaWfBWVA?= =?us-ascii?Q?XkebgeVR1C4sWLftKSbensYXnSz5zGGgqQwThByzhvSZRCxaIRSETO3p42VN?= =?us-ascii?Q?XL6MRTH2Za15wU0xahUVqdotFWwMviGnY+eiONQ7Azck/RFrT5kYJhVhY3oX?= =?us-ascii?Q?WPm7yg7KfMN+YQ7JL1zd/uSpBFfAzhSB?= 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)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7e3uPR3N/S1KHbPWLEFyP5aZfcHFWvxArpQvGyYRuO5qrdsvn53GXyqUgSXj?= =?us-ascii?Q?QMHmjWNAH2mY5tl1CvUIt4+9FQ2hcKL1Xz8MhgldOzYKpw4aMbhaHS7+bYi6?= =?us-ascii?Q?dqtXWx8HbRmUBfwZv9GH3b6b7aX6gbsjigehqoyf4HBjjj0fVBfHWzjbuae4?= =?us-ascii?Q?KgmQJ217L1ALy3BTADVEd4S9koZfqoPqrnBVcGiC3+TaigKFdUDi2nOHD+tl?= =?us-ascii?Q?VYzfE0u215k9PmL1YtFpedrqRLOPmGLlOCkdgFxvQys9ajHlceRJxGWyEgf+?= =?us-ascii?Q?PtOiDL8Ig7NRVtcoKOxwgj7T17goYa1w38jZwrMlu+bWlM1LHjOO4S2A0Vy8?= =?us-ascii?Q?HEIyGLsfSR7IgBh4KGUSioENbSJDmnV9sbYwbXW106KfTLxsL81DA1zshmSN?= =?us-ascii?Q?zcPJQRu9KLC/YpQATz/vOELiwLhF9+pk1+RGiu93yifrpRXiBLGw9HCQRyfy?= =?us-ascii?Q?BmxotiLvyrHCMn0zRfa9ZtLGKiKXaAEMfyW5PcxqyZaBCocKrRoh9k13NGJM?= =?us-ascii?Q?PmiRzwi/r9+0hHdk3TShglyG/qVnJsrrXbsEgbJFAK6zbVvVPmBlUpjJlrOD?= =?us-ascii?Q?S6AAc296bxTPePWUOma5diIdK0geXBYxGIWvlUHupYENb4YsyNZGAI2Ezk0d?= =?us-ascii?Q?BBPjDCkM/BUqLgq4bjQAyG55Udh/e+xpP/UjvTiYT4BPBYAzvCZt5I6VuUvH?= =?us-ascii?Q?n4fXfpKxYvcQXxDT3L+3Y0hGkGEjZyfqQmWg9CIOFZUHjAuRBI6V5LysPrML?= =?us-ascii?Q?uNHQiafEiHHjKK9FLKf+YYkf10kuDiwdg2A8/+T2HvfCVAVDvi0OYcSE3Quh?= =?us-ascii?Q?3FTKm6poxbHUabZUe8JHb3UiKKLEZc0om7LLGtX/4MNjgeDAeoIaZqoV9P2p?= =?us-ascii?Q?N6sEjIxkg0yR0rjukX8upT86z7cqwUCv/Uz1pFME7AyPwQV7YBPPBFz3w+77?= =?us-ascii?Q?kPv1xvEhtoxFV7obVCQq/QpVdXU6LUz518sur1b1ndjouWi5TbWuuaz6I2LY?= =?us-ascii?Q?U+OTj+Ud0zAgyZvOEShkJVAQUvr5HVFiX34wEjR/t7gD1/NyIyp7R7TXIa+k?= =?us-ascii?Q?c3fGyV/oPnSY9DLUZDv6ldEuKzNe9Kp3G23d9AalKASpzAkOLV452ffwgTqk?= =?us-ascii?Q?s9wBlqrFEYrF41k4nZyTuFrQxmMk8Ab/Z78GCRhzSY/DhPlz9IFsBhXaw9iM?= =?us-ascii?Q?YfF+i64qmaa0J3qdmnR2EDxUvzW3oyA0w2iDfg27/9TLxEJzjF6Nph9FDt0Y?= =?us-ascii?Q?YrXZQZkHhGpRG7JnmnJ+i/PWsdszFiJpSy/o05qQMb4q30JlgeCEXihpzeSC?= =?us-ascii?Q?eqalbtF0gvzkfaSrr88IgQfXxi7LhgkoUtp9/m7RyWdmsFkPUGnCSJ9bZJos?= =?us-ascii?Q?V+CcOnxAH9MiC/aVnjazrFPoQqgrOSJ7psu5I0rL1LjdqUUQ1xcBsbgecbzU?= =?us-ascii?Q?kBeQ0wySDcsUHfhOrkye8wRLy7SixrgybE2iwyZBON3wy7v2+Qn9Qbeg+WDh?= =?us-ascii?Q?XFNiUR47tzPKINeA6H4xZXEF2Z21bNkbknLcLFGXAH/5QgImJNg8D9P5KPwt?= =?us-ascii?Q?oC1CWwfrPyAUQ/6fdnd5oQh87I+nwDUkY3XFWUmw+6QirqAhV6CQa2pP/Iog?= =?us-ascii?Q?zNi+tLZyGzwd79M1C29Hs3Upd73hYr6Afw/I3sqVP1UpOLOHz8i+6PvHFHq3?= =?us-ascii?Q?LGyw79/JMyYR3P9rPPayVtWk8QMWUHOtk+odgeKsgwIUbAXcvu4Srvl6pxJO?= =?us-ascii?Q?4tNYohZ6Ng=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e208f3a-62f6-49ab-85a9-08de4953aa21 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jan 2026 16:34:41.9758 (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: YAZc1YywwrIliihH4oRNRb4JKGL1GLHH3utkSvAGQdlQb7Wjl3S0pY0nDkdjwwWbtgfCDtpv84ZGQXiljiHAGg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7974 Content-Type: text/plain; charset="utf-8" Add flock-based locking to kvm.sh to prevent multiple instances from running concurrently on the same source tree. This prevents build failures caused by one instance's "make clean" deleting generated files while another instance is building causing build failures. The lock file is placed in the rcutorture directory and added to .gitignore. Signed-off-by: Joel Fernandes --- tools/testing/selftests/rcutorture/.gitignore | 1 + tools/testing/selftests/rcutorture/bin/kvm.sh | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/tools/testing/selftests/rcutorture/.gitignore b/tools/testing/= selftests/rcutorture/.gitignore index f6cbce77460b..b8fd42547a6e 100644 --- a/tools/testing/selftests/rcutorture/.gitignore +++ b/tools/testing/selftests/rcutorture/.gitignore @@ -3,3 +3,4 @@ initrd b[0-9]* res *.swp +.kvm.sh.lock diff --git a/tools/testing/selftests/rcutorture/bin/kvm.sh b/tools/testing/= selftests/rcutorture/bin/kvm.sh index fff15821c44c..d1fbd092e22a 100755 --- a/tools/testing/selftests/rcutorture/bin/kvm.sh +++ b/tools/testing/selftests/rcutorture/bin/kvm.sh @@ -275,6 +275,23 @@ do shift done =20 +# Prevent concurrent kvm.sh runs on the same source tree. The flock +# is automatically released when the script exits, even if killed. +TORTURE_LOCK=3D"$RCUTORTURE/.kvm.sh.lock" +if test -z "$dryrun" +then + # Create a file descriptor and flock it, so that when kvm.sh (and its + # children) exit, the flock is released by the kernel automatically. + exec 9>"$TORTURE_LOCK" + if ! flock -n 9 + then + echo "ERROR: Another kvm.sh instance is already running on this tree." + echo " Lock file: $TORTURE_LOCK" + echo " To run kvm.sh, kill all existing kvm.sh runs first." + exit 1 + fi +fi + if test -n "$dryrun" || test -z "$TORTURE_INITRD" || tools/testing/selftes= ts/rcutorture/bin/mkinitrd.sh then : --=20 2.34.1 From nobody Sun Feb 8 00:11:54 2026 Received: from SN4PR0501CU005.outbound.protection.outlook.com (mail-southcentralusazon11011026.outbound.protection.outlook.com [40.93.194.26]) (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 A312B2EFDA2; Thu, 1 Jan 2026 16:34:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.194.26 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285292; cv=fail; b=c8uuWBQBaXEUVTjzBm0rJ4astYKbjYQzyjGma7wbzjWyTFbYwB4HPAf7CKO8yemQV7oqpUSRqvCEMgmmHWqDHeEam2KwgB/DimT1hvDtTsGjmWZF9ZeqhOYaO7i5AWtR++s7D0vvbXe4ndkyxBxpQeBHhJJjr3tuMX9+WGnf2Yo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767285292; c=relaxed/simple; bh=gU8nNTl6otSO01jtaIR7HVYcgsxYAyhkmShfFTUlgfU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=upf0gZ4VyRMo4yl64lwJk4c3UExgvwx3rdsqHD0FBdoySNmL/13/W7XYWdb/rH7g6Qu5G1blqCZWayDbkoy5tLa83ePrDlhZEjobnc27BknFxZ3MbSdpvWhDRozVJ9/rx0tpRht0VcNPwCeHWx1xDDtb1MiN4FeSIi8xrYqhprA= 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=Srmdje51; arc=fail smtp.client-ip=40.93.194.26 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="Srmdje51" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BHqJTdnh+PpyeXtf4Ze9RRoKnxkz1mTFpmTWBwHQnWo9V4nyph2j7EolX45widlu8gnzQ4VVTOFySOCd7vPoFjg/all6dFO4UKMWsFqKdVJ3CcuJDe/vt6tWKKQ1d7xmnZaWAkHccm/d7S7xt3AUNXtPzAOcdQ4T5b3NXYcoWy+9ZOe4/FxZp72YGzl9lgKenaqqNqtq/5myf9SaiYNpQmXUhWsCdVak0ycuJ4X/lfXE5ZH5OpIKvpKbqXAOtlGOo8hvAXqzDCMTW3GebfV2eMHx4JgC4se52rWXbOxFLmbEacARH4ThhZl1o4UL/6gjJz4DmAXE4xdOj59OzIYohw== 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=WbzZ3fbh8LIIqL7Q95txlykDZ3KKGiep6qaDiQ1SYMs=; b=cwhEO6/XWRbGOSXLsjsYfgLIjYiiGDxaNvZ+FUJ1yfgzstF8bb4/K8Qn2DlexrKiecgnpLciQaeJUywp1vVnzmrFz9BuTGPyKcwu+hmPO4Vdrj0bLBREvvL0HNa/h4SrlhNqHCqjxvl6xt9QxgMLlmNBD0oaXcr0HAa6JLoRWquIK+5b3xwyJK+/Ac0OcUrOjMAMirzmndeqqhzCNo/3O8wpPhPhFgwaH8+2oiYbRpVXOBnQKi80h+Dsk7tpdhr8RcvuGLlRgkrkD/pEU/R0tvSyP/0kJRLRXyjmluh2PeYNDmhv8kGl2G+/KC1HXfdIabvtkIZvShAbNxnFwiDZUg== 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=WbzZ3fbh8LIIqL7Q95txlykDZ3KKGiep6qaDiQ1SYMs=; b=Srmdje51oYaR4I/6XjdV3j8cAThLNwlpB991qAkNL0B0nQSqcN+cXttRy00/T2kmOOS8i8KGEzGRI2Z9yIR4/1WEfOqPoIrmrAXmYRw1MjZ9+KuNHBDtYh4AQkmzfZeAk11BRAwIeICaQj4uGLve1WaCw/yG1kXTtIJtSSgdN6dOyiRY8uNtqZbbrZBtLS978OjWhaznVZZvM3dMUmCL0K7EVRMAeLJVQnEXl/u/U2WoupH08ct41FU0JKkm5u89zUOmTMYKd7P7IMC1hRQ7qyDUqLLGE6igNa3Ucsgbthlbkwlw6yBr2YBZ1UeRe76QX/uZ6rprOKIx/TZVUafInw== 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 SA3PR12MB7974.namprd12.prod.outlook.com (2603:10b6:806:307::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Thu, 1 Jan 2026 16:34:43 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%2]) with mapi id 15.20.9478.004; Thu, 1 Jan 2026 16:34:43 +0000 From: Joel Fernandes To: "Paul E . McKenney" , Boqun Feng , rcu@vger.kernel.org Cc: Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , Shuah Khan , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Joel Fernandes Subject: [PATCH -next 8/8] rcutorture: Add --kill-previous option to terminate previous kvm.sh runs Date: Thu, 1 Jan 2026 11:34:17 -0500 Message-Id: <20260101163417.1065705-9-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260101163417.1065705-1-joelagnelf@nvidia.com> References: <20260101163417.1065705-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR19CA0037.namprd19.prod.outlook.com (2603:10b6:208:19b::14) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR12MB8059:EE_|SA3PR12MB7974:EE_ X-MS-Office365-Filtering-Correlation-Id: 923c83b8-fa01-4074-fd28-08de4953ab37 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?icdgFN/sZiIEtGuAQ0FD4WuvzQOu1qvTEYGskraFIGgAw/Q1b71g/tifMhK3?= =?us-ascii?Q?fImh2x01xypo7FVntToYyB6rsvfN0v3FWmq0xsbmQlHYg7KqILjU/7XKEjKS?= =?us-ascii?Q?r1jnt5DPa7HPsSZp71UW/mDBAd+8YxqVdPZM5iARmcTaCS0SHw7zxF6H4u3W?= =?us-ascii?Q?G2ynq0Vue/QYJT4K0ZGsoutzLRpPTpsPZMXKCs02f1xEEZguXLrKR7cA0aqg?= =?us-ascii?Q?ntTWrwb3cSOViIyeoCrlZsisAvOv6YReEdCW4GcI7tcIe7h+Ji+W/6wOCANL?= =?us-ascii?Q?s5HZVFkwi8A5Lcqpgdbm7jXlVaYbipF3C8LgeJ6nXYvhWtmtSvIME3F4VBO0?= =?us-ascii?Q?QB0r8Kyn044K/zD0AfGUfeccKr4lwMpQyM/7RzUBnZuCN9ds4B2JGZvTJ+3y?= =?us-ascii?Q?mM6/Sc9o6gXi6UEODlPHgxf2fH0UtwmFwHCn7IrjECqCgDjhSpphBlBkqBTi?= =?us-ascii?Q?TGM2ZQusPUBoAnH941FMx6Mx+YSWkt+jmKWU+21A7ey/LjaELGdD1RACAXFR?= =?us-ascii?Q?MVM3ZAUvO7YOqRP8zOifQHSJAqxkRDMAFXMOhkiyAz/9x8t/teVlur3rtQW4?= =?us-ascii?Q?/SCGki4ghnhGoqZgs6ZQ7F8b7E3U+6r1zvvTOP91pWYrYW4804KXAySUZeKm?= =?us-ascii?Q?XWvjbmE66F+1MCQS4Jz4nUgPdCh+rm3Mme5WE8qv6j6J0A1agMHBnNu4Ojmu?= =?us-ascii?Q?dNssPGn7h9mbKLW4twTqclcMUf15HtlZXItFNXxircE/4c4nphqVnOqaIAVJ?= =?us-ascii?Q?bZHsnirUErfQs5lteUzs6J8gT2LwTWQwPP0zpwrP5Jv84VmsblMFNmNs4jnL?= =?us-ascii?Q?GoF3+P6gZWmFWij8LZECLQMBp2n3Ceu2Q6oBKiPPJ2pGdMFs0UnTkIW2MhE5?= =?us-ascii?Q?AOJolFm2CbVKSRZqiCPwgD+6NHLEihewXTOTq2dxeA3HFUFh4iphbVuhBSns?= =?us-ascii?Q?EaCoWSrUkeX4/dvJzZtZ+3jCwNxvlcXKw+6Bj3HvllOkZh9wJNBnpLcbImBG?= =?us-ascii?Q?v18dGHkW02NLE0uURnwvP6byjpQaI9H+JGe1jHqm83yodBvT74D/zfq3qXpZ?= =?us-ascii?Q?eAy3/OOlVQxwcMtnOR/47MmyGQdGHhWiOWTXSqyPpb2kGYXTxks9Yk0i+/sW?= =?us-ascii?Q?xHeMnBDZZuvLMcvqQiVlzCl3DZgoDfbOCtlBThXdC2NV5L6dUmfFqy1ZgR8f?= =?us-ascii?Q?drFFYNwD1+wla6oPKigJ8AUw2QGLxYhCznd7z/zI6Ln+VvpoX8oVsrXAGJbT?= =?us-ascii?Q?Mm3YWPwa05lUMafOhBrf7W2BtGxeyo09NtLwUfyz/hYVBYa+30PxjYXxepzD?= =?us-ascii?Q?cirR6szZWa6gfsClShOUZQQEUHughrlLm1vWlC/8RUu8IdiCveFvyZ/dDroq?= =?us-ascii?Q?aOeKLaPu1Bu8HAL+G1gvJZZCfw3n3C6WIGIPKH5WzU7NFIHvfC5t+f4QApza?= =?us-ascii?Q?fyXaZsKnqzFLhiTaKfIB9xwmg7CuQP2C?= 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)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Z6NQobJW0tg25ffVxEmVKCVXLBSG8MkCqECe3Mt/neWVPtfRWwGTic1yRCSG?= =?us-ascii?Q?lkXxmwUfWDuE2/Ykd3oYFfVdszbSxy5TssoYpp/dln3kGQGUOaP2ctC+RxdR?= =?us-ascii?Q?Ou9pyP4UQAB4jABou0QgE7LoawLk76PrebVr4k2uaXadQI3eW4EXDH0Cq6qP?= =?us-ascii?Q?v0siwrt0t0MMIj7a6HdWO9voifMHOMEnPP0H0iv3ez35Gg8TnX6dnq1X5MWQ?= =?us-ascii?Q?WN8ZRIGpZxSUT02nBlCVrbln4/G0cFv4ZeRPzhZJgGr3OZef2DyIXn+e8O2g?= =?us-ascii?Q?jUG8pLR7yPyIl73FzrtJJ5kBdGiXhDG2AfHnlLiKjKm/q4InBILwtTLUKVMF?= =?us-ascii?Q?MhyZNqF4Ibt3z/bBNCA47xdRAtf+lFNBG0wI0zaGFBWJuztH9ad7LScb8CRO?= =?us-ascii?Q?ev0Lu8bnMF9LH6T2Ipb37hNtqL7qWgRKRwLnrmepPj5eFLrmkPz70iagOAqo?= =?us-ascii?Q?eOHALR1cI4qRFtUdXSprmngqXWodC0VWdV8f5iSadnBBOQPNgfIhiR8AUv6l?= =?us-ascii?Q?79Vx9VxC4+k93m3KEV00ZEC1om3/HmlrIhUV6kcGi+6irKrZFRM162EKER8n?= =?us-ascii?Q?JvbnNNH6MheBfr4XUxHAATkNHB1oSg9EyAyqBi3XpcR7xXRB7Pmo2Mpadz+s?= =?us-ascii?Q?ta+HMcyjApol4lrJMl7/Jsdrpcz18gHiVDpUDRBc2CbF97rX6jQGNO2KtPw5?= =?us-ascii?Q?+OD+D6M6FEmD5RH6zTbK3JlBHKQqN0fHy7qqp4CA0+lH7wjhW0wkjc5xzK5P?= =?us-ascii?Q?Fle1i0ltEdxScfKXNSkLBaT3Cjhg3uZfj9fnQluDVaL3m05pWS3racMUptdV?= =?us-ascii?Q?gw3SSKvwd756CfTZ8b2fkEdQfGkAz+RzvvICmNJ6hgWrfnVe2Mu4abfHM7zM?= =?us-ascii?Q?u6rSFCxsgTdp5kuxfd9c4I457YRX0WBmMgkL0jSh3kf+AE3fi9nG9faBeIBO?= =?us-ascii?Q?GzA+l5Ts3cWaR5rjiWqLIEJhM8vKGTgyap2+Bpb/yreQyj/ZFoVmGgOcKoYe?= =?us-ascii?Q?fxxe5m/sl4+X4Z7lyzua/Wej+xN7hj/jy04xQmFW215blVwIl7ExS1XEmtfE?= =?us-ascii?Q?u82ygTAsfYrBnYoJhmtbBpnvJXxePaF9KeOTDs3Qvn7uAYNcqSCJUq8SahJm?= =?us-ascii?Q?SgbiDwQR8QarUyLJW1PgIo02ZhCskNc2hTfFkEO1oDztvUqm6kXU+O5p9KaW?= =?us-ascii?Q?V6/lloouk7j3Dz9PPtw0csH2c8ESXrP5IkNiTj9pXK7Y82ezgZiSSSOz0tIo?= =?us-ascii?Q?zWBNzeuc+QkKQ0pV6YV9RZsxXTnHBfHDsctXmpVCo+BIskWKNm9cyHuVkwga?= =?us-ascii?Q?56gI9dn3E50N026fNORhWfN1uIxim/32meuDuJn1R32lb2bldgLZNWZnBjNe?= =?us-ascii?Q?LFMhnKlVtSjDhCxmBE1eF6QfCOPEYoqXqf5BHbIwACIFFw4bR4iCs75NTuB2?= =?us-ascii?Q?O3gZZ/EtU6EbUQRHnXKujz8KzesZFuKFxUY9k16AF5A1TtmKmSTL0wvKL9q1?= =?us-ascii?Q?UqhuB7RJZkQqVmXOfW8mKflaLf1yxWv4ZvlmDMqKJoMviF8cMTTS8MtStJKB?= =?us-ascii?Q?gQ5aTwU5saXx6x+qsbL3k/UFpaP9GiZhQbTErs6MgvLCJ9P633MJXQzVSfjz?= =?us-ascii?Q?EmP/PDyOsicmtR+wFmRaze09iA0sVSzOsjV1u5nYZDEI8nT9jpmd9uEXH0jO?= =?us-ascii?Q?OeREA8N+DUaf5FehANfKCp+X/ZzLNQy2o+MtllVDUxyejX86SO8uEwemiQj3?= =?us-ascii?Q?TwRIGfURLA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 923c83b8-fa01-4074-fd28-08de4953ab37 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jan 2026 16:34:43.7492 (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: wsLagT2zZYnRRr/TOieHzUxNsw5uG1mZm+b85TxlNYTPKEBwUXbuQfCBAoPA2lzjK7d5waYITYSijZ/kQI1cGQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7974 Content-Type: text/plain; charset="utf-8" When kvm.sh is killed, its child processes (make, gcc, qemu, etc.) may continue running. This prevents new kvm.sh instances from starting even though the parent is gone. Add a --kill-previous option that uses fuser(1) to terminate all processes holding the flock file before attempting to acquire it. This provides a clean way to recover from stale/zombie kvm.sh runs which sometimes may have lots of qemu and compiler processes still disturbing. Signed-off-by: Joel Fernandes Tested-by: Paul E. McKenney --- tools/testing/selftests/rcutorture/bin/kvm.sh | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/rcutorture/bin/kvm.sh b/tools/testing/= selftests/rcutorture/bin/kvm.sh index d1fbd092e22a..65b04b832733 100755 --- a/tools/testing/selftests/rcutorture/bin/kvm.sh +++ b/tools/testing/selftests/rcutorture/bin/kvm.sh @@ -80,6 +80,7 @@ usage () { echo " --kasan" echo " --kconfig Kconfig-options" echo " --kcsan" + echo " --kill-previous" echo " --kmake-arg kernel-make-arguments" echo " --mac nn:nn:nn:nn:nn:nn" echo " --memory megabytes|nnnG" @@ -206,6 +207,9 @@ do --kcsan) TORTURE_KCONFIG_KCSAN_ARG=3D"$debuginfo CONFIG_KCSAN=3Dy CONFIG_KCSAN_ST= RICT=3Dy CONFIG_KCSAN_REPORT_ONCE_IN_MS=3D100000 CONFIG_KCSAN_VERBOSE=3Dy C= ONFIG_DEBUG_LOCK_ALLOC=3Dy CONFIG_PROVE_LOCKING=3Dy"; export TORTURE_KCONFI= G_KCSAN_ARG ;; + --kill-previous) + TORTURE_KILL_PREVIOUS=3D1 + ;; --kmake-arg|--kmake-args) checkarg --kmake-arg "(kernel make arguments)" $# "$2" '.*' '^error$' TORTURE_KMAKE_ARG=3D"`echo "$TORTURE_KMAKE_ARG $2" | sed -e 's/^ *//' -e= 's/ *$//'`" @@ -278,6 +282,25 @@ done # Prevent concurrent kvm.sh runs on the same source tree. The flock # is automatically released when the script exits, even if killed. TORTURE_LOCK=3D"$RCUTORTURE/.kvm.sh.lock" + +# Terminate any processes holding the lock file, if requested. +if test -n "$TORTURE_KILL_PREVIOUS" +then + if test -e "$TORTURE_LOCK" + then + echo "Killing processes holding $TORTURE_LOCK..." + if fuser -k "$TORTURE_LOCK" >/dev/null 2>&1 + then + sleep 2 + echo "Previous kvm.sh processes killed." + else + echo "No processes were holding the lock." + fi + else + echo "No lock file exists, nothing to kill." + fi +fi + if test -z "$dryrun" then # Create a file descriptor and flock it, so that when kvm.sh (and its @@ -287,7 +310,7 @@ then then echo "ERROR: Another kvm.sh instance is already running on this tree." echo " Lock file: $TORTURE_LOCK" - echo " To run kvm.sh, kill all existing kvm.sh runs first." + echo " To run kvm.sh, kill all existing kvm.sh runs first (--kill-= previous)." exit 1 fi fi --=20 2.34.1