From nobody Mon Jun 8 19:36:35 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012056.outbound.protection.outlook.com [40.107.200.56]) (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 8E7E338655A; Tue, 26 May 2026 22:50:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779835830; cv=fail; b=QU0smUIUJE2HUvquPcbQs0q7V0SSIM2fwn5qUAJYIqHrOCkaZWTJE9rX9RFA/+lxy3rsykQHHxQFfpZTJEiLOd+IqZV2wlga+A8X3P1G7xiawEHattig6A0WMzRd64IuqpdSWyonnOsOlvtLSK0ygz0Bsx2RrF6rqMKX8ICAqPQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779835830; c=relaxed/simple; bh=sNzdxytoBechEvKKJnuMx+G/XO/jUlvbQQkcFNUwhLs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=UPQinm4oWGQxOEwAsEk+AY16x3UxQFQnp2ZbU9+mpjxQXdLDLx3c9hDcqZkaKrGQyccuJJdCMduWcan6t4Igtj5fh1SkXvIXoEIXpHbl4TD/OLJ0AIhxef+hNH9SrvE5wUISUQgQ/y2B/vp4jN8SH+T78PNZFfeaZLgKLbIWbck= 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=V8SSFVhy; arc=fail smtp.client-ip=40.107.200.56 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="V8SSFVhy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gTiS68pFGD/PsYtpByOSrOatNf26TaHEAooyenYLqLl0sL6zOmGbPOqt7QipIsGyMLV1fbRbgI7b2G+hxKDo+LtlFWfWayALRF6UI8KjnbX0OxRP8C5LV5XFmk2h3CQyjiZLICd7vQdd+GNSLrVEZCqcv3bBckGGRAk9eaOEi3VGb9H83KYvjqbdZDXL+9C+gvDywglATg9w7kuE8GhoerBuXDb+mop/q5teHJk/KZ55nWpB5Xc861qwZJc1WcMRsSjj+rm+lCvd0BIsPgzr/OhZOz9axEIVge0m7Z6vRwySt2lOzVoR791fg9oLJObAgHLmxmKbSPj8MF9458RnjQ== 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=f1YouM4wpBFrfULDHc0G/kHx5Tabrcs9Hjji7ybst4o=; b=EI4S+Lew2u6r+Tqyl+eqMHjQpP2pSEMpo038STeJREz7FzODSQgVFLYYlIN1bYpRvL4JL2qq5jXAzumzW6McDCawLjo/7FAOPoP/C0NGmyzDReRst1mh/5JANgPuZGtyEk3qySaUn11+9r3udoHAxaCGuVwUrK+H6/+ZP6TtTmSM724nB1+xRM2882nFdUt/V3yLfT+VYnNpEslZYsnLB0FtWVViFgKHQYXGaqB6qW90xIKP22x+D9aCGm5DR68xe2yUX74B9MizrMVRSJj3FQ8UGg/sl0m5+EaTciKZbG8X0IZLXurBXbHn+wktKlNT2bmeejTi380eZSxAg1O62w== 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=f1YouM4wpBFrfULDHc0G/kHx5Tabrcs9Hjji7ybst4o=; b=V8SSFVhyUymBvxowZT21uozv49D1Zt82CeDWgEvU1wyCxrkTEULmv6pxZ5uYYc9+sEXYj/rtD8PAHLVuo/C4EYRaoEq5RjUrLc4jM/NRWz9s8dem5nYnyJValJbAkFLZdE50sJtHVtnM28CzV19c/3Ev5lqEHB7H7ZneuclymUHj1qF90LcbNU7q7f79D2WRBFH4a3lbeTLbrMbb96Eau29suEyXHakxLrj3NsbibJ8wfYhbiQaYOS8h4iAfyogFtQt0aVKUrD15ihd3n27xTUVCLsAEzOZKX4GyF2I2d+qbSScXjGJCx6l+AjNYGP5yNW/VBiWWrQXTUFXwAj2QLA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) by CH3PR12MB8353.namprd12.prod.outlook.com (2603:10b6:610:12c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May 2026 22:50:20 +0000 Received: from DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33]) by DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33%6]) with mapi id 15.21.0071.011; Tue, 26 May 2026 22:50:20 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: "Paul E . McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH v2 1/7] rcu: introduce rcu_defer_qs_clear() helper Date: Tue, 26 May 2026 18:50:08 -0400 Message-Id: <20260526225014.314734-2-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260526225014.314734-1-joelagnelf@nvidia.com> References: <20260526225014.314734-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0001.namprd13.prod.outlook.com (2603:10b6:208:256::6) To DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) 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: DS0PR12MB6486:EE_|CH3PR12MB8353:EE_ X-MS-Office365-Filtering-Correlation-Id: 24f976a7-ebdc-4981-0976-08debb792a15 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|11063799006|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: 3n6hL0q6Wru6wJDKs/7543CZCWUGIGk7VlHTcvsUMNWBtcv0iWhB0sUtpDFOiTXpzemxTjkITiJ0Qkz2p7yuEQCnnXW/VYUwgnJNIkML3BS8KSvjvwS7u84Ofn9lcc6rTkcaJ/tz3b6KoQza5zhhMGgmoRxxy60LvCh5//HB+r6XZuAwNn2ffN5rzIOWoWy6ZcCjOgNS7v9Jo0Ya8w/ga18k7xl3Ch6XuJr+rQjEJfiRGY2hS2n2crkxqe1txAwxm3b/1jfUF7grXRBHVmvk/BQUzsoJxCGrhAU6vORssj51sy67JLSx4C33lMvicuokMtJ+u1AGC4o/E7FqmKTcs8exG0kNI7JWkrrBUhqOYTJl5s3UgS+PVsrwhQTFd++fzz7bAJGehknaXKCIrzkz9GolnggDeyGh6gKjHQ2LZEDuhH56hQQAHBHRb08J2kgzuuFDZ6z4MkC2Wyz3vdU6q6Uht5B2FwFCunNbewSVzS9fygd0EQyZ6KTHohn24Rc9I77mPphsuaV9Qxwut3X/ciwVA+ElzHu0UuOic4V44r1o8ybjlGHJMe/ZDDWdDVQHEGLgfG6WIfRv6oRgyUSmvUoELWma2t2/eOq8/O5hKXOlT0Y/JNHIDKJ18KZ9sUuDCv9VkX/RV5jDizxoqJUNEqKe13m1CE8kqJL+CwPiw1FliwDgJp37p8FN+oBDOj3h X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR12MB6486.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(11063799006)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QKbJMuH9RIGxTx52Tdd5g3xcGzGQgjxWDGzCHV7LGbYzeudPE+iRofJzM3kf?= =?us-ascii?Q?Va98agxKoaXeg+I5wP8o9rQ7/SH3qtZOQMsR46W1tDSlWPP1XfKwI+C2YIfg?= =?us-ascii?Q?DnOjLIxoEz+PleZELilKCyHmY+N3BD11LMiLzEp1aRWyfsTQUC3twTPTRy6s?= =?us-ascii?Q?TZXpWk88Q7wQeXHdZpmJpvXpIdld3/Af0LvXYMXbAJP04W4gBEVv/dcMcjcU?= =?us-ascii?Q?fFXMQ/H3MFAYJGkwQ9SVK/xMQnCrvYTJbB0e1HZnqF3Ygd/t6JGHIBF3PNia?= =?us-ascii?Q?32kzhSyXhdYgkJ9gJHC2E/GOzvO/d/MXsx146PSFz6AOlWiC/qsgnEfzNy/w?= =?us-ascii?Q?FI4Tebw+vBE7ZeULCrY0XwoqudWtg8gaWLxyCDKgHUpXQRCtgk9YjN84V+if?= =?us-ascii?Q?Htzw2QJhBYdWtfbIPhSenOSwt7uCBqZd1L8n5AK4k7/L33rgRwNAsOhZhYKh?= =?us-ascii?Q?iBnkKN+EL5xHNMelrEcKKKKlvM8THp6w5OypNsdZ9H08mI5KlFBh7MQb5A1/?= =?us-ascii?Q?sA6ggAjsHUyeT9CaKuXa37/t3eVhSru5aX70GYVGsQOPgUj04/RwjaNKj7b4?= =?us-ascii?Q?RMnWgQ5GP9SfOrRTcG0MVGIhbgL5LSkgjunFUooswdPXsazkuo+9K0NOHcHs?= =?us-ascii?Q?vJsoYDzvCEunJPsB/QzoMahj20hEY5ubbFD5vgaoxYqDTtiB9aAr/u0o71Vf?= =?us-ascii?Q?s6wfEQz9VlwLuawEoF75VJEF0yOFAUFuEQqD557j5gKcz/sv//doPQAbXQA9?= =?us-ascii?Q?K+K9jQm92OfljFMJ9ZZ1KsGSpVMlKVtuQoPj0BIO+GNlh3z2GFbaOvabiccv?= =?us-ascii?Q?GtnJilZTEc2SATExyAnOyhjM04du/tINwZKN1nYexwpBfOK3vkoX1Tc+Z8CL?= =?us-ascii?Q?do4WP3pYTLvzSz1+DMo5rW4isDSxqdAPQWbY1dMg72lDmnyKDFNXXgF2x2g9?= =?us-ascii?Q?zd33/C5BivgZnbZ0eS/sx+ZT6I8vQRGyziNrvmuJCo/U8sItQWxywFqmJdrL?= =?us-ascii?Q?1aAgdK9j0BbBnw9ne6mheaF98dbkpjDmPVNbdSqDerThJEos05HA/cswRojf?= =?us-ascii?Q?jZrcbqCkv9BpItzJQQ+tC/3UyFz+Ze+9DwvjtF6Zrzil8IBngUwR8H0sEdHt?= =?us-ascii?Q?odzQPeYE0Evv6Q7tN0pkbdRTyAmx6S2lc+s5A61c8tf2IK9Yxf4h1tLw0NSQ?= =?us-ascii?Q?TWZF/p96sMQGA5z7QiWiQ7t1PDJrnRopeDzZwOks+oppO1Prx0MF7+YtBtqT?= =?us-ascii?Q?rEl0S7RObZwJhPhlvtxVGWjvddu7W94ZvF4ru4gni/4GGa3LNH2R/v4EQ7cI?= =?us-ascii?Q?+de2x72DbhCyJ3ejRNMdA2O6PZZhPbfSjdR+J5HnDvuLIYj9g0Xqm+hWpFyF?= =?us-ascii?Q?sVg51+tteU5z7T8j+9EVi9sX/+bR9JqCDFaMJ+ldR5Daua8H003XSh2hpARb?= =?us-ascii?Q?L8uCQj/U7wBEoO1HfxpfhHU9/L5ZGvreJYhSu/MR3OksJsPUV8E4QU92xdI2?= =?us-ascii?Q?B3QMWpiatYCLGFzlIttMes45PL2XRi55ZjpmmhhCh9X7wmjfdIZ+9nHckrp9?= =?us-ascii?Q?nbcrq2nStC735EpGwsuX74OHNUl1mN5CG0oj4qsQ4NFmkWKBsN7tmf7TSEuJ?= =?us-ascii?Q?S5YVvoBSzZxUTmGD8kuK/Fhn/7+m+QAKb3/YiH5+3iIndrKiwc/TdfIEHChG?= =?us-ascii?Q?JevJaL4hjYjXY518RSZR9sf2qfw5Ox/8lYkvn8VE6lgZlU/CgAPOZaBiyYHV?= =?us-ascii?Q?an75CVdNPA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 24f976a7-ebdc-4981-0976-08debb792a15 X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB6486.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 22:50:20.5803 (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: 4U//QAzJxkEENTh52hhit3jw+aGdJyUJD/SBFtTVktYJS0SBWHSdxl2fp0mfemu33paHSVC6SKeobS6BQKyU7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8353 Content-Type: text/plain; charset="utf-8" Currently rdp->defer_qs_pending transitions from DEFER_QS_PENDING to DEFER_QS_IDLE at two sites: rcu_preempt_deferred_qs_irqrestore() and rcu_preempt_deferred_qs_handler() (depth>0 reset). Both write the IDLE value directly. Introduce a single inline helper rcu_defer_qs_clear() in tree.h and route both sites through it. This becomes the single PENDING->IDLE transition point for upcoming work. Signed-off-by: Joel Fernandes --- kernel/rcu/tree.h | 5 +++++ kernel/rcu/tree_plugin.h | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h index 7dfc57e9adb1..4069132f9d44 100644 --- a/kernel/rcu/tree.h +++ b/kernel/rcu/tree.h @@ -296,6 +296,11 @@ struct rcu_data { int cpu; }; =20 +static inline void rcu_defer_qs_clear(struct rcu_data *rdp) +{ + WRITE_ONCE(rdp->defer_qs_pending, DEFER_QS_IDLE); +} + /* Values for nocb_defer_wakeup field in struct rcu_data. */ #define RCU_NOCB_WAKE_NOT 0 #define RCU_NOCB_WAKE_BYPASS 1 diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h index 95ad967adcf3..8637f405cb47 100644 --- a/kernel/rcu/tree_plugin.h +++ b/kernel/rcu/tree_plugin.h @@ -488,7 +488,7 @@ rcu_preempt_deferred_qs_irqrestore(struct task_struct *= t, unsigned long flags) =20 rdp =3D this_cpu_ptr(&rcu_data); if (rdp->defer_qs_pending =3D=3D DEFER_QS_PENDING) - rdp->defer_qs_pending =3D DEFER_QS_IDLE; + rcu_defer_qs_clear(rdp); =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_pending, DEFER_QS_IDLE); + rcu_defer_qs_clear(rdp); } =20 /* --=20 2.34.1 From nobody Mon Jun 8 19:36:35 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012056.outbound.protection.outlook.com [40.107.200.56]) (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 1C6613CAA3A; Tue, 26 May 2026 22:50:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779835832; cv=fail; b=k28QAlgXJDF7DoJosEV/6Zez4ojECli169oLffa6z8zyrd2CILWKUlVDLu4Oe/pft9Ng/HSG117Wj1EenkhZlGHX98A1Ro398INQXdoEW0m15SagIgukqFIz+eJ/WXAJuTBKporUPFbPPcHzgCeSwjChb2Fj2taVrD/8Kxq8vXQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779835832; c=relaxed/simple; bh=5cUsGHCX47yjmjJTgFNT8J8NEigkjsQ6L/A95WK4c+U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=B66oEatdcP7wTHvaeaVTa04QXa26qrepNVUjkXiMfoGUEcY4CXqN1tNBFZZQIgmPVPb5uzw2RwAV+ZZ3YHWb7U9wG3UyPjaDMZX2sAKakOcc5BsV8m9lxk0swjpOEBZ7msl7+SzujO2Jyz+jOXbJ8fFUe2qCF/DIuxZaO2ddjfo= 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=f6iOtYza; arc=fail smtp.client-ip=40.107.200.56 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="f6iOtYza" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JnBbjlJwZ5hwvLe8Q6IEouya9AloJefJ5NS9wc1YJNgYw38AT2purr1O11GWQYRukSCF8T/kcTtBigmv5ERMmBs0wE1uWH0QTjhbAwVHrsnZwUZ82HeEDKL1v/ydEGlGSXguBtUosPB+BFxZXq2uzvJROxeyb8jvzvCCHpjFuTDft/yku4C7Tb9I1w29Bo27SdQWgR1GQ07d5dpzvSvHcZ6q0EAUfoYZlbIS98aEvszgb04cyQ4YQxD+yIHXDYfFpfj/Z/tAwkO77X7ck5GlaLewgr/XR7xMNHj7mbA7BJhyY9jbqQDqb6zEu2tM8xrm9CG6whHRt/t8GGuJYo2gTQ== 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=uCBFTBQm+wrHDEdstVzAFKfSRfgAapC0qWBeYstsKAE=; b=OfeIlhFNzL7i1WOzNWzL1dRJwcN/DR+gkfF4uiqIwGn6dn7EB1fHigM2t8c9EHcvnNoDYKGPyWKzyk6XcQDIKOcHg6Rt5oIz2x/YTaDNOundzmJ6/8I4H5aWK2FHioj+ldZmdwuHFTvoTV8jeQUwZd8i2bSJ3jAnoDOfFC07Mtfi2TMXbwm4Jfni6eY45hPYr4zh+g7U5ZER91KstVTHmB8K+pHKZEDtWWrokv0D8K0m53zN2HE6vxFt9M1dEBh6n8aTcl8paIeo95QBsK2D0G8leWIDrbn/5sOAJzY6wxGErUvtI5Q+vD18ahQp4FTWOOIKQyE6aImJM03P5dh2Qw== 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=uCBFTBQm+wrHDEdstVzAFKfSRfgAapC0qWBeYstsKAE=; b=f6iOtYza9JQXGtp0EiaKAd6hB+vIcaa0jNloIMt+PYpa7x7uPXOK56JHG9uYaIQ3kcTft8TK1uHa6jiuqnDHGDbCL7O6xI+5BPNaThDCfXRKwDC0k6IiOVx83FoT5OznB3nEM0seaAWpwGngWDwpaE5dNYRwGz6v7cbItd/1tfHX2OyH7A2X6Xz1x//QkQzss0jM2BZUqvfjNilK2NgthLsHQCj717VP95f+fzcz6Yoe+9C7jOjsXcDd9j/ts736rmexN5DEENKL3MiH2BP/V2ZZ/mdcx9wSmjVEPc39v64GiYSUtm1nA9ozOxQ7D+C5AwxEom5gS/VHVjHpMIocPQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) by CH3PR12MB8353.namprd12.prod.outlook.com (2603:10b6:610:12c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May 2026 22:50:24 +0000 Received: from DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33]) by DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33%6]) with mapi id 15.21.0071.011; Tue, 26 May 2026 22:50:22 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: "Paul E . McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH v2 2/7] rcu: clear defer_qs_pending when notifying GP changes Date: Tue, 26 May 2026 18:50:09 -0400 Message-Id: <20260526225014.314734-3-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260526225014.314734-1-joelagnelf@nvidia.com> References: <20260526225014.314734-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR14CA0009.namprd14.prod.outlook.com (2603:10b6:208:23e::14) To DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) 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: DS0PR12MB6486:EE_|CH3PR12MB8353:EE_ X-MS-Office365-Filtering-Correlation-Id: 6137c002-9db7-4cfb-9c49-08debb792b53 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|5023799004|11063799006|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: 8tpMCnSSpS7wMIlVoYlP3zn6MKNi9s2kiOQlEkY76BUZ1JBSCTaCLHVwXxvUUpabGst8+6JyiT9U2SREiRFoOxA6e58CdBop4CTnX0b0IQyj/1c2HST/ROyOVEpmg/AAB1rT+uqvo6nTzpUQACa2N01ccpX30PbkfkmAoMLFDBXUI14J7MoOKRueRPLGyoEOAZCjNWVAKKQ4ECpRYQpUD04svPdUFJIuNEH749ckjZnKJd1XjeTxmTFp82x/iS6qea3wqtfi6v8l8drtc7qXGfKhhfk/jyUz+DBmdmzQwyOMoOoRZbTw7Nbk4Po7Bi4zDNyEnTpYCROJuhHeVi79KwRN1f5Zy0HNcu5Vq+141KxcmxjvR9TgsPsJXx7DBpBzabafQqsCoITAMIV87fpU+oDiA76kflhfV32w+DyayvEfh56rcDAKxGwoo3zv3eV+nbBPxx01UT+/e1d13oIw2Sqp4uNF/EyUVFF6qBL0on+eDLxkuaLcubmgNoogd1S7eyGmG4yJkkbE+pc3BggI3vJuiaR9Zs2KSpxjC4HJGwIip51VJ9Xyo6rvhfc1Xs6crQFUB6PfsYD3Ds+x4WlSJci9rXEHQb80uYMmR5lsRGRWLo1AXgFGBdqvDNJrh9n4ensjhT5kFj8SbxN3RalI1UAtWB2psAKtJoTdSkYUME6yrgpmdcAWXewYhLM7mMuZ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR12MB6486.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(5023799004)(11063799006)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EUXaQ0B0rCInh7JjbMnIkEsVKE2juqN6UGq1nCe1dYRThTiLJr60SBcasDzv?= =?us-ascii?Q?YC1pMtYUivvRPwKQDSTu7k213z5rDOSJE8Hy9mfM6e98zd46dapmPO25d/bW?= =?us-ascii?Q?6UXn25uqIWhiIFrK7P0CVUzZl7NQaRRG7F+yQ36QhJITHr7gCc0y4GI/OYGo?= =?us-ascii?Q?lMCHBoBbbwSBb3ea8PdelQXu+Q0OiwmxPVxT9fr9i2MXC2l0UdMMannUZal+?= =?us-ascii?Q?RwdTeizfQo8Q0MGupQPa69Lh2kM+jnIkWyzh7gNntdqY7HushjtVfSg2pBRn?= =?us-ascii?Q?UcHfO9xsnAarusu/PoSfJxMr0sgr5mLUv7wypASlOIwQuXs/IU7bs1/4R3ga?= =?us-ascii?Q?B0PFc5G90xsioY9kCngVkk1Htup1UNEWGZ9vjMJMg2m97hdNisUhIe5sM8gY?= =?us-ascii?Q?xw/FodMYKedfgT9mBE95xM7q+zOjBNF8bs5OILeOnKN35VgSYj6zlQHWUqcr?= =?us-ascii?Q?Bmbem5lDkFEr0iONeMmb0cFwq9w9Lc5O76xkXrVMaN1iuVo5aV3f93FlQl93?= =?us-ascii?Q?HEuuWX94W8G+GUCl1Ahzsx4COPajo2nfGEvIJiyTrypRzDoKhmOaD9YqVWyJ?= =?us-ascii?Q?+WlesB3p+D296AvnoGvhYmt0sKHgNH2xWzM/E530oYyexE/Eg+DoilXkhZOA?= =?us-ascii?Q?NE31SLp+TH4vFUiZun0/ylKZHsllyKLjZCXnWWE9BQURx7vaFteVQhxkzNuM?= =?us-ascii?Q?i5fPgPlgwUWUNciDo1rsWtbCR1JdnwGpZRrl25fHHi0CRlng4Z9RyLdEsHYK?= =?us-ascii?Q?l8kytmBKaz93ldE5flbqORM0n+Ib8Kvzd4foDqefv/RSdbuHMnsKUitxiPXL?= =?us-ascii?Q?ooGCuM59zs2nbNjbQy2Q51V9A85Ds1Cm/pqoajA7Z4vGsGeQo75PKt0CMD0J?= =?us-ascii?Q?8WbuZ74YjLtTPcFQL/qA/l/AqGF/BwYHhePQwEQU+0TqbyfLkCsm0j/fNVi+?= =?us-ascii?Q?EGiirEp8kF3cn3qUUjnf6EHqN9e17NPrd5EKLYO9BBUQyv4DrLgrJF8lm+tR?= =?us-ascii?Q?Rub4xWBPn0GmxY+tkYtk3VAcy+4mU+UGYfa0r6PKsMy5ienfwDI9MbYHFL8d?= =?us-ascii?Q?deGjflAseEmBo2cBtA2RYIb+jdajO95XRnUT22PPR2U7If/r1XRfvyav/rvt?= =?us-ascii?Q?Sj/RedFnbICU3eGM+6KMXf1fjwvSVld/X6d8pSWq3qcozVYOL/z4D9qVtqv/?= =?us-ascii?Q?Y9KMW6cxoAnuwUMl0vmMW0yPYGlQDMlf1Fv81+NZBBUWdiz+MBBybEahkPhs?= =?us-ascii?Q?S/SThTsczPZeyyqWkA4VvGFxrYT5EImLjZ6w98hoeuPxcSWCiNgAvwj9Q4cN?= =?us-ascii?Q?Cd1lxs0yJLEEGl2OAPkOCR6b1qpNSecq7toyQi5kj2gzQyUMo8EOGLBrbswf?= =?us-ascii?Q?2l1hvz6tncZuPxK9pNJEv0l6hVqnNsfxlZ1KWSwpgPiWuAyBKbfddhWPgTeH?= =?us-ascii?Q?+QMxA5X1lCjvsS7YnlLQkR/PqPvmDjiV0V2XRmj4nMzooQQm47v3BX2LEHDw?= =?us-ascii?Q?+DJsDllxSGA+sFunbRLn8Jd4/3/AF0jOZGglvFblMxA6RkjhvhrP+2WhilTp?= =?us-ascii?Q?sBiBUJGX7t29lcGQ1z2FAV9vAaKdWiFF8V8DdSr/t9RWvY83XMsV9GwvfUtm?= =?us-ascii?Q?uyFgBTRZ/PTXVT39/NezxNtJ42nUEnaDIB20oqlJEfajQfPg85TWqHOuk0zL?= =?us-ascii?Q?Os7xByW0vqfm5IfR5ZebGtcHM0RGgBHo8VZaP3fxLhyDhWgPkFsfNLL7tfg1?= =?us-ascii?Q?lt3QZmjl7A=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6137c002-9db7-4cfb-9c49-08debb792b53 X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB6486.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 22:50:22.6992 (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: /ShX7RuzYv0fQ7PQoY4dIPXYBVUk7gMx5pFgYcw90OYThR4RunWMu5QISNTIGQbIAmp/BUrcTWqCPJul7TMWvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8353 Content-Type: text/plain; charset="utf-8" Prior to this commit, defer_qs_pending was an unbalanced flag: rcu_read_unlock_special() set it to PENDING whenever a deferred-QS mechanism was scheduled, but the clear paths did not cover every up-tree quiescent-state reporting site. In those cases the flag stays PENDING after the QS is reported, and rcu_read_unlock_special()'s pending-gate then silently rejects all future arming attempts. A test patch confirms TREE03 can have get into the problematic stuck state very quickly (< 5 minutes). Clear the flag in __note_gp_changes(), right after the nothing-to-do early return. This is the natural per-CPU "GP transitioned, sync local state" hook, called from the GP-kthread's rcu_gp_init()/rcu_gp_cleanup() paths, and other GP advancement paths. For dynticks-idle CPUs, they do not call __note_gp_changes(), but they also do not arm new PENDING work (no readers running), and on wake-up, note_gp_changes() is called before any new reader runs. Signed-off-by: Joel Fernandes --- kernel/rcu/tree.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 55df6d37145e..d0816468ffee 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -1281,6 +1281,8 @@ static bool __note_gp_changes(struct rcu_node *rnp, s= truct rcu_data *rdp) if (rdp->gp_seq =3D=3D rnp->gp_seq) return false; /* Nothing to do. */ =20 + rcu_defer_qs_clear(rdp); + /* Handle the ends of any preceding grace periods first. */ if (rcu_seq_completed_gp(rdp->gp_seq, rnp->gp_seq) || unlikely(rdp->gpwrap)) { --=20 2.34.1 From nobody Mon Jun 8 19:36:35 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012056.outbound.protection.outlook.com [40.107.200.56]) (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 97F063CDBD5; Tue, 26 May 2026 22:50:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779835834; cv=fail; b=fhVrz/tLLD8RGT5qVBeaT1ornnvrqUVfCNxLhZk/DVf6/EWFCg+zObMgZMvwtgp458gObFWe7kyLVfyV3Iq6dn9dvSeWyVA9wXqa9osj+zC6O3Yy9RDeH/K2DJqWDDgde5ShQDsZAhBG3ysFH0ZsSZpWaDOL064Sm4yhwGS5mpE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779835834; c=relaxed/simple; bh=fbRjpXyN/E2RaoqyvhlPNuYovKwltiVbHlD9OAiwTP0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=cGsuQaAYYRwVshKX+nLyEY7yP8Sdg9F7W6+s6cdlaZHEO97nd4d+LV/+Xx/DzCyfDXneUHvxtoGkWOJ//aqZ9d2k3G4rB8T/OpiBc3d72Cjg5YCYDvNh0lKlNFbZhPHTh5VLXMkzdDRMJgCXOtrTkUyS3Zgp4wQgoMhrkYLm+hA= 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=NlJ8Id0O; arc=fail smtp.client-ip=40.107.200.56 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="NlJ8Id0O" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IIJn3cZLqm5T6OyHoO1ftqfiSMrpTcHeNat2e8r025c8aA1fXYIbRc32e3+drL8vAoXw/AgdtG38kLPBDT8AgJ5ZCuTngtpEIHqErdwc4M/NI0WEqASk9YVgSeX+CIbklN/95mcVWemkVqmlfBK5Dr0WJQQTBQMCq2xMmfCy6uTGj/hJ02w99ff9RqMnL4dT6l8lGOdBbIR0d7fxGu5D8OcJrlBRSfzpNmvFE++0I/JyueJaQC5bspM9FAAcASxviuuGFc3C8hGLuop5UAn9x+vVS95VwOPqzJLTkr1e4ZRKSUIhY263mIs161rhjhCihuBBwChgxu1BY2d/9LwZpw== 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=2R2eohlshkyhTS7BzkyvjP9idrWHREPtQXCoqfqD+AE=; b=XLHmVS+GYrHVfJBfSMbe1NJ4pL9Vw3FZCn/ZNUFUBV3NbxF7qBBPO4qnBrNmdwFcXIGJCTod5IvxkHAKyEz0ulvP/DwrDIGSnRW5Kdw/ptebXu+7rmbPsNlmTvjDzZqrgd0hS/ivLMXCtRYIlK/jPK/UOPf9WaawY2kLiDLM5dsGBzmf/QG7siNDCG9hLbO58ksiRCGN9iji2uOiHlx2AfQ6FPQpEBedLM3fe0/FL80RlvaN6uW+REwcx4G+Epd6eFGfg45EE3JHpHE7RzOeBWN3PHhrfu2U0x4Z0y1rghsnIulziZncL+Z/2a1A5h8sGdyovk5BqzLKw/X6eD75vQ== 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=2R2eohlshkyhTS7BzkyvjP9idrWHREPtQXCoqfqD+AE=; b=NlJ8Id0O5M9Nsfmw2xW772p4g/mTWwIvgagAhcHkY2PPFWWbpK9JLSJuBtP5SybcgUhT7LDv1A/Hw5TY7Nr3fHJpBQlVnNMjBhbAg5A4f6+K6ymNLfZ0sSlwpLBps4MtXb4zGRRpyb92hj/mRD3fgIMzYt+yHmbyuHxowg+qM/2auRhiSVdvH1xD04EKSlNV917d7Ltm83MZ2724yfeNSI761fZ2mD+pOFtUtawyI+XYf7FKtYSZreysocNIH2i50oIWaf2ZXft8f2T0prKd6yngH/iG/Zfy9iQGT56S6HQiWM5CqeJMAjZOyhRC1mbe7XHhgkPqeqsBHyDl7ON8WQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) by CH3PR12MB8353.namprd12.prod.outlook.com (2603:10b6:610:12c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May 2026 22:50:25 +0000 Received: from DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33]) by DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33%6]) with mapi id 15.21.0071.011; Tue, 26 May 2026 22:50:25 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: "Paul E . McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH v2 3/7] rcu: clear defer_qs_pending in handler for compounded sections Date: Tue, 26 May 2026 18:50:10 -0400 Message-Id: <20260526225014.314734-4-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260526225014.314734-1-joelagnelf@nvidia.com> References: <20260526225014.314734-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR16CA0054.namprd16.prod.outlook.com (2603:10b6:208:234::23) To DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) 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: DS0PR12MB6486:EE_|CH3PR12MB8353:EE_ X-MS-Office365-Filtering-Correlation-Id: a7063840-dd0c-41b5-663c-08debb792c82 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|11063799006|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: 3oxHctnBRqD4T11x/AiklfeDCjtx8ILYd/0Wb7FCmXVRnyCQjd46WIIoAD28+9E0EGV/eNfi9kM4fW3sNMkfpGFGevwm7nta1WJnY06UM1M5fWTUmD03xZyajCxnnWGoTOWAfBTGIGgO7twcAcXiEov4/jLIQhDwG/EbvAC7jhB2VH9nl9AsCoLpTas8U5dX6B2PmvZnCt8FCaXRFN4yD2R7a+AkjyWxshZUvS9DIfq7zrsO8T0bSZnOEIjdhwW/gjA1HxWX8OLj6cxd5xf8+9CI9u1IUfgcCTE4NL4VzPyi7Sfz+T8HQDMevjLqkY7rT88XkU14zqRWi+MJxXTw8gtSKRoR6tWAX5oLCF/0bLa5V/c4RtLxAePWK/dFBb5EDCQfcgVRGXNsd/F9JzaIspXARaWjDg+HdPEw6cUfMbPFb9a+L2RfDr1rOvaFimjmaWQLfmIE8gqGNfcSgcq04LrNauTr+mX7Mbv0jJKUnUgLWWGnpBl0RtKOMBOr94HXeGdeFbU27H3cOkeICP9VehmeK5cEH4a4CHCFUjoAvGsnNlpuiK8b2Yhk7M4DqOr9wjmnSetveBFcBM1UEmksfALo7iqxiXT62jjlWIeFOcJxmP7NE4zikoZEQfXsFO8vl8UUjHl4JESE0WWODPGmKlE3XQj6DPfI7OeeRObr/kxx9iMrIQEgbcM4KkKE2+wv X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR12MB6486.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(11063799006)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xMgWKKWCtCHeWUFNhAMDFBDRLarGruPt6rWGkfN3q7KPXGC6+IjvqfWZ5xPj?= =?us-ascii?Q?U0JdYR4BT0izvnFgENXD0x8RE47wuQ1Xpu9z741TU/yKHrcHNTBlBMrFSTaa?= =?us-ascii?Q?F75JWTauOmNSrz1XPJs768KLM8hbDe3pGAL+KGHSyfJA4cydV693NDF+yGpU?= =?us-ascii?Q?mbs/Fu4D0zU2NegijkNT1I44iEq08XVdXkw3GnNPf2qXH0RGQP6k8OWOg0Cp?= =?us-ascii?Q?1lbGC5tGN3sLXyUE/U7O+G9jhjvnuYb2Ums32vA9ebBFFbCs6RJmqPwRJEIG?= =?us-ascii?Q?bUWVNqsRxF3No7dYja8N2F+luETi5t335I/YLJ9MHox0oTaBHxILlT/yBqSR?= =?us-ascii?Q?XUg0ru+UqEBfSTKSX4RbD4NYtZWT1ZNge4UC22zqQbYXYwFDOp6qWUYThh1a?= =?us-ascii?Q?wtN8Ve0otMGPhjBTjBrbtKY1JiM+YXP+xywKQcxg2SXTRcUDA+yS4l94Ie3o?= =?us-ascii?Q?ROV0qTTocUJyOwSwCX3o60AXQwxWUtyowpyBtfyzxv89hKSTwxx8JbMjFRWE?= =?us-ascii?Q?cWk8mDXMcveK6Ixov4BucnYvfC9gZ66YOp9+0y8t+HZfkvkP8xwCbitI5DAz?= =?us-ascii?Q?KIdFUPvzC2D20E/3Mj9JjXZYRtKFn5rIrtVROHq61K0G0nD+OYZSQ5g4kmy9?= =?us-ascii?Q?DD05dcCu0SBiKQAAyJ76DxwrrToQGyHhNsg1XlLYM4g1PPyTj9ZhSionJiDl?= =?us-ascii?Q?O8OEsXVOsNtsJgFrZYQlxMMkFdAq3N9B7ySd8BEuPGZtetqVupvqYI5QyuIm?= =?us-ascii?Q?+z4Bw/clpwKqXhSyZti4bnVjQROPIplsF9qbvjWkZ+DRz6j0SH2riYEJ65Wh?= =?us-ascii?Q?w3bjozFZ4Vxft+6kZoJGCWYut04zi8ajOB3V0CkEeImfz41aIEog4HfceaZZ?= =?us-ascii?Q?+6l3HwziNk5TY2mOk70QpPPFeYYZ9JxQ2NjI0svTZKt2K98DepsW04TEKI2p?= =?us-ascii?Q?GEUqe9F6KAz+y651+G9mrGWyqzodAaXcUR1rR5ucXWrfEu2wk2a+DKck1e7F?= =?us-ascii?Q?cDMgRWja69hKqrU/Ny3nr2f9dHrEb+u4BJLa3L4dCaLztpsKYZj4mpJ6dW/u?= =?us-ascii?Q?jQW81tejUmrl25O9qKEeuI/2+yeLqZZWdj5JXpIx5BkhCxUjZXY5pc8uyIzP?= =?us-ascii?Q?Z/cSclHyZK98SuRexXk3Uef1FUDSBuIoZ6ppKqYKBQ7ILTGzZalqCt2o/PUb?= =?us-ascii?Q?nY0IrTwx/fIe5eSZe3jWHfafkANSWBmSGo0cgyMOlutqDUOPe3Ast4sd6r2t?= =?us-ascii?Q?hwfnkorQiYWVMkPZHM4w2dDE/NCjR8exchYb6EukomvMx86jFlbBA+SG8Q/o?= =?us-ascii?Q?xDIYolgp/sJdrkOA08vnfveT1bAWU4s529Y3P+a31SZhUHDk7nxVw90qwHyE?= =?us-ascii?Q?qKAXfQcXrVq+ur9vUHBPE2khcwjPa+s5y2LLYQD/N5qqm5dYdCrxDvYyvGT4?= =?us-ascii?Q?HIdCMk9oF//RNWqPPkKcXU9w21S127EGxZXGsqO87HyUvYvu8ueaLB9KKAlF?= =?us-ascii?Q?NIuw9GCq67OdRJZklUTwNZgoT1D+V0mk/eJegZdtIX1BLX8GrRTMZJQhjtUk?= =?us-ascii?Q?JEBu27OoTPSMDwED8zJprPRvQtdI07O60seuiJRqpG/Rjp+jMqciafRWNQVD?= =?us-ascii?Q?yAorAe7FelFqJAtyQ/FZIM0DyRDrJhy47Q6XEpZJT+BHvtFHbzInwGe200WR?= =?us-ascii?Q?lfRIfWRMWQN0JiEfth5zFDMqiIhbqZup0Ip3umw6zn+uBQfKc/R7WyVJx7cL?= =?us-ascii?Q?wRkDUR/z6g=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: a7063840-dd0c-41b5-663c-08debb792c82 X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB6486.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 22:50:24.6334 (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: 9J4MQcM9ZcCWOHD9B82b5dvLW0nhkJ0TBgWt7mFo+dlDY0ENZxq1/YX4MpTVOUHaPZoex7iXDHmoWQo0b5geBA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8353 Content-Type: text/plain; charset="utf-8" The deferred-QS irq-work handler previously cleared defer_qs_pending only when the handler ran inside an active rcu_read_lock() critical section (rcu_preempt_depth() > 0). Paul McKenney pointed out a common multi-segment compound pattern where the handler fires between segments and segment N+1's arming attempt is silently suppressed by the rcu_read_unlock_special() pending-gate: rcu_read_lock(); // segment 1 starts // may be preempted/boosted here local_irq_disable(); rcu_read_unlock(); // segment 1 ends; arms defer_qs_pending preempt_disable(); local_irq_enable(); // handler MAY fire here: depth=3D=3D0, but // but preempt is disabled, so it cant // nudge. rcu_read_lock(); // segment 2 starts preempt_enable(); local_irq_disable(); rcu_read_unlock(); // arming attempt suppressed incorrectly -- (1) local_irq_enable(); Waiting for the next __note_gp_changes() clear is too slow for the compound case, we need the deferred QS report sooner. Therefore, make the irq_work handler clears defer_qs_pending whenever rcu_in_compounded_section() is true so that (1) can do the arming. Signed-off-by: Joel Fernandes --- kernel/rcu/tree_plugin.h | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h index 8637f405cb47..2da009dbe64c 100644 --- a/kernel/rcu/tree_plugin.h +++ b/kernel/rcu/tree_plugin.h @@ -621,6 +621,17 @@ notrace void rcu_preempt_deferred_qs(struct task_struc= t *t) rcu_preempt_deferred_qs_irqrestore(t, flags); } =20 +/* + * True if the current context is inside a compounded RCU read-side + * section, i.e. either in an active rcu_read_lock() (depth>0) or in an + * outer preempt-disabled / BH-disabled scope. + */ +static inline bool rcu_in_compounded_section(void) +{ + return rcu_preempt_depth() > 0 || + (preempt_count() & (PREEMPT_MASK | SOFTIRQ_MASK)) !=3D 0; +} + /* * Minimal handler to give the scheduler a chance to re-evaluate. */ @@ -632,19 +643,10 @@ static void rcu_preempt_deferred_qs_handler(struct ir= q_work *iwp) rdp =3D container_of(iwp, struct rcu_data, defer_qs_iw); =20 /* - * If the IRQ work handler happens to run in the middle of RCU read-side - * critical section, it could be ineffective in getting the scheduler's - * attention to report a deferred quiescent state (the whole point of the - * IRQ work). For this reason, requeue the IRQ work. - * - * Basically, we want to avoid following situation: - * 1. rcu_read_unlock() queues IRQ work (state -> DEFER_QS_PENDING) - * 2. CPU enters new rcu_read_lock() - * 3. IRQ work runs but cannot report QS due to rcu_preempt_depth() > 0 - * 4. rcu_read_unlock() does not re-queue work (state still PENDING) - * 5. Deferred QS reporting does not happen. + * Clear defer_qs_pending when the handler fires inside a compounded + * section as we may need to rearm the irq_work. */ - if (rcu_preempt_depth() > 0) + if (rcu_in_compounded_section()) rcu_defer_qs_clear(rdp); } =20 --=20 2.34.1 From nobody Mon Jun 8 19:36:35 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012056.outbound.protection.outlook.com [40.107.200.56]) (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 5E8213CFF44; Tue, 26 May 2026 22:50:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779835835; cv=fail; b=UnRwuzrE5nxvueT65ZpBoYvdfaTkDj3btUUv6za+GIwyvM0IU0TdkA0PPO7pvIOHZNqAgb1/y932G1tODjV/xX4PU47dR/RPziG4/LGfCuwvZglVs8sGKi5nsiHZFiJMcGflxnqLxO4euG1kJULdWlsrsaYo9fIlOXeD79kyr+U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779835835; c=relaxed/simple; bh=hsxPzI+av6oaL8CBIfvbAcFT672ooILCBEN5mfn38x8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=lpIGFYjr8YuqMexcPat185FqXK4FiX8agEFQiFekDIynduBU174T6moAH8pFQzgTwxrnFtGjB4KdiYQVbN+/pdsg2Cn6PewMDcPjUHSTWtgJ991j2KfWS3quSaLltc1aJwdR1ug7sNvI0pf1opkADNOaWjYa2/KGk5112p5N3E0= 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=d7A/ZG9E; arc=fail smtp.client-ip=40.107.200.56 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="d7A/ZG9E" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PfZULY/0ODyOzXDLd4YyAle46tnDNueRVeJubISs24HCIw/WaZvGqujiGYgKmvIfELNqg3JruykKlKzQLa2RsAfZaJw7Rv8W3wfXv16Xz0yieVs4B+z/+mHhfnFQk3ajGu7ROUB+Qh7xeMyJmk0kkqaDXmtRg8EmB/gv5kI78H9d8R1VhdInp1rThSQOeXG8k+mc24j+F3RLLPH8WmPhVhBLlQOmtiERqIB3WJThXqqXlWsVg68cbhuBcLBLfs8aXUaFQv/wfPQs6EPKAtqqJCqalY9stGqdigEK9B2AOHl1jBEqmMqmRhCu3Lwt0xxVZrYcXrkHsUjhhyh2BhYQxQ== 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=NOTcX9evTxo1FRB9J0hTdp18eLGUmzDvBQomLqMeZMY=; b=yWs2N4MdwIrMBet0bHqe+Vq6Q9QBO3jEYNutcDo0o44rFdXJfP1mLCLv++H7jfI/dcnFqdfIkgBo6JCMTRVhSOHbQ0WTTtznGAMCH4DHQ+iFAjXlax1EbNAGaxFIfSCcr0IZAAxLU54c0tDABTyjNOGr04hXSQICcGWTnMwMiIC3zlC3tFG2BV8Cl6sltHPUYJRaOv9sYIIi/w+uFCT0yHJc+ieY33VfuYZbvxbkLexOP8xwVoamjQYeYaTKee/PpMvx5G7m1WD8CFEs0cLYbnjxTYu6qqwYtxqp+D/PmEGH85GIZdwsWRrSyXcCKbJNo3XGGuuGjqnkg+BfCUImzw== 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=NOTcX9evTxo1FRB9J0hTdp18eLGUmzDvBQomLqMeZMY=; b=d7A/ZG9Eu48HAHtE+k6bRhMuWdxH7Z9JxWGymjF6as2eLAu4wIRwuo9OVHDte26KDRjmWP+W9aq+sP1hmyJvv/wnQNsd8sgsau7J3fSa0rzRGmlKwA1HfxmAE1JxmWAYeUuVqVkdJABpS6Kpk9eUvWALaNfeOVR3PkoRhPTNHQJhfdfia5KVWbXoNUQoorS3OcZhkgaiVVyKWSnoa0XS3PchV7DEZ5tcpiuvprFles2IdIXsPXjR5hq8IGGOlZzO1ucnYjSSmIdzJvahNfLyWY7ykT1nblqO3sJ+1KdtiVmMZt78cFN34d2HKL3HX1Vn2DbPfXWSjQ2mClPjZ/ZnGQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) by CH3PR12MB8353.namprd12.prod.outlook.com (2603:10b6:610:12c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May 2026 22:50:26 +0000 Received: from DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33]) by DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33%6]) with mapi id 15.21.0071.011; Tue, 26 May 2026 22:50:26 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: "Paul E . McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH v2 4/7] rcu: drop redundant defer_qs_pending clear in irqrestore handler Date: Tue, 26 May 2026 18:50:11 -0400 Message-Id: <20260526225014.314734-5-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260526225014.314734-1-joelagnelf@nvidia.com> References: <20260526225014.314734-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0131.namprd13.prod.outlook.com (2603:10b6:208:2bb::16) To DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) 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: DS0PR12MB6486:EE_|CH3PR12MB8353:EE_ X-MS-Office365-Filtering-Correlation-Id: 552fa7f5-a757-4845-a954-08debb792d67 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|11063799006|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: Ud4HWO6yrUVjzPXrSxX7XLmT/w6uKW3cTpQx6tZzMRZnjAz3HNrD24dKhXxzzsUHggv6ttj+S7Owil9lDsoqZ1IXZEjPPBCYT3t3+CrjR8yJJU5R0495MhInFyy7se7Zbx4hQTP4vzxUXy73bl0fOmmMI5RcX/4nkNrvHxw4ZZ9ARZB65rj00VbE75KyicpYVVd5Av2XtR9i55rT9Gl08iGuE2wQtzDyFsFx1gvoQbVdtq7MQwbC9g7J5nBMBqS43kBXuh6jWdS0PAf7/d6WEkntMkqTp080VTI36cHlyD2krsUJLfIAc/NG5DHZAfRaX+ljAfUU9qw1VGtV2xxzYDNGKGf/2zBYlGjAU0QXIi3qwvHyQsRzl8PQbhqBvDn7f869iDEa2xah2HwWzDpj/p068A/2Pd2gqqSRSL5Exe6ehzlvOOFX6RzWqsgBDWlWTDgwRcA/6k0gC+G2dkOQuLhirUMJzZE1OGVB+JUPNPq6ZsWKGmG44c868HRkzySqziPURKtZzbv49Jx+vztmKjoGC1B7gjU6O0grSyR8dBPLinnolKirQ+5d89Ey0noRGssGgLf8ZRKg66B2wVCNjn0088n7u3LtIeri5zyg4rlSvMQHTzNFpvaEdAKfyfR2CaedlCA2rUMGLTHXTS7Fy92DMjAzJoxEwnb1W7AZRAmpv97M50wcv1m9ElV5rXJh X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR12MB6486.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(11063799006)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TxQldZADn3cjmcT6mk4LCLqrVvo4/nYgWBoUFdV+QS+TH15Cov957c8yGo74?= =?us-ascii?Q?LSUgGxoHR/YpMKfODxdELWJw3JJcxC0eRElELpnmSaMLt9SlQUKyKt/AsFlu?= =?us-ascii?Q?O6uXZmbTA6btC5seXHzx8GpVwoiq8Usj+849fqYn9Z33ULpkFPz2drS7p2Ev?= =?us-ascii?Q?C9cUqOIbKXueQ4TA0/EnyMxQAT/B+9nv3kdHgAdpOf3nL3Ia8+y5q7hhsQrp?= =?us-ascii?Q?X4QuMMXVxT0ttm4IlNygHlby/QJ+13abG+B5TrUYIF8Sf3TDrMnRalVjHmtl?= =?us-ascii?Q?ZuAKKhgbB0Grwh+Ud8xoCycj6YgZYV7MencUaOQ/haIwU/1Dao1ZiZzEaFkd?= =?us-ascii?Q?DBAZc6XdtDE4btgbH/H1bhPOkiseQLvJWxwSWwAzDDqkZFWEGLEV8sHqGyp9?= =?us-ascii?Q?6W6O2L8P9CxOMN0rqixrGrbVufsWepk6DM0iYyjhqewizvVzDqbdaPjyeatb?= =?us-ascii?Q?Sn64sDFIBcJECoPLzF3dQiNTgd2gZukJVBUuyYrDVdzRqF8PkS3ENqkhUAs8?= =?us-ascii?Q?qU1qtU8TJ6+g0tyAIAFUYoFapcbK13OdR6yNuo3fkspopL7inD45RnpKO4DH?= =?us-ascii?Q?0akuvPT4UYcvQuHamBzI7czx6IuNpL8XwvWuKajwYng7brPJRnm8nkL4+A9d?= =?us-ascii?Q?UtmfOxIvACsXSN33gZswK8zyEQiDJDfJVWu0Ig4/4P9bs+iHT4EhPVFU04X0?= =?us-ascii?Q?0WKTIWx2+NlE5VS15QZmRXC/wSEoEUbrAI/APVEvIiyDa1DzGem6Y6h2sP0/?= =?us-ascii?Q?6jiB2Dcx3UqSqUTy0jhuCIw0gRpb5dbkTfuE1uI1TNnAeHydAQab61eJoURr?= =?us-ascii?Q?N0TZzkb7gGiwEwmqvvc0th67iZgaHPkfUYayz69s/nSeLb9fB5xN5Ox+VfYE?= =?us-ascii?Q?2DDY5uo5b8c/VSAx02dSYsDMfOtoNbeyURmuRRbqDIIHQO1k49TGn0gdHa3R?= =?us-ascii?Q?L5L8jswoKMIokJUBkSptjmbMQ8ElFmRNXBvtgU18Zfti1BtE+lY6/m0wCBtW?= =?us-ascii?Q?uCtnGqd8Roa/94nCIPHjXdPC+KvsTi5myVUXqyhK02dk2U6lHIHLBaGC5Eop?= =?us-ascii?Q?VCcRY7oY7GabyK108LBzK2mkYw6ZfUsWgVhnT5mqApUmDU352aSb4Ti4jAVU?= =?us-ascii?Q?WjJFijeAGMbwU04FsJ0tN8Zo2gtmsKz+C85DP4AOdL0Ys/t3t7Qz9p5+PqAx?= =?us-ascii?Q?coMKgjuoVgLWABq3CvzLAlDzgjhdNo1JXbggIonmWMpiGJcCx1Wm0GQq2Z97?= =?us-ascii?Q?nZpxbrfkmsSqvI3AzhuyB5ycqZN37Fj+JkmOGPI7+bpFaNeQtwxq5QSHfxZ7?= =?us-ascii?Q?P486nw2S4VtB3vMsk/7qR/u5R4cx2V2hOUtnSt0sev5QidSV7/d0F9+/F63W?= =?us-ascii?Q?VgFupizpLiaAjCZnQCNEWwvPIK0JxQp9CiAkRfq/f5Wsz1wNFlsqv/20DNok?= =?us-ascii?Q?0UJ5hZVR3HF8qip4P+Hc+HNLge5FTcmBOh49Q4jm3u3g5c3mDshWgsVuJeUB?= =?us-ascii?Q?oo5a5PECW+LErUOaj0RKdliDBfkCUdr+3m50GMDoDr+c7whcM9jGBbEhuc69?= =?us-ascii?Q?++cNZfRqS4NJoC/xayvy0jRmr3ajpLL1aJXqxfFuBWDOmXcgSZUD7FHuXbV2?= =?us-ascii?Q?Ssgx6oSh3GpHANLiBa9CMHAwUi3ppRUFqyAielOj76BuW5TqI9XztXGhy7CT?= =?us-ascii?Q?99Nzt9YkrahgyR1ikXtUWuw+veoO6okgJ9o0JzGI71xPBM+JwQQicx+39uwx?= =?us-ascii?Q?h/XvokQUHA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 552fa7f5-a757-4845-a954-08debb792d67 X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB6486.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 22:50:26.2078 (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: prrxAPB2JhgW6PxGjZVJDB48g5bTHQ6ygd3cCIqUe0FHgY2THGTWNN6qxa3DuWoDJdwjpB/1nDGvb+6TkasLwg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8353 Content-Type: text/plain; charset="utf-8" With __note_gp_changes() now clearing defer_qs_pending at every per-CPU GP advance, the per-irqrestore clear is redundant. Remove it. Effect: PENDING now stays set from arming until the next per-CPU GP advance, future arming attempts on the same CPU within the same GP are gated by the rcu_read_unlock_special(). This serves both as an optimization (should not need new irq_work again this GP - for the compounded section case, we detect and clear it there), and reduces risks of recursion due to clearing too aggressively. Signed-off-by: Joel Fernandes --- kernel/rcu/tree_plugin.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h index 2da009dbe64c..bb5f955a06df 100644 --- a/kernel/rcu/tree_plugin.h +++ b/kernel/rcu/tree_plugin.h @@ -487,8 +487,6 @@ 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_pending =3D=3D DEFER_QS_PENDING) - rcu_defer_qs_clear(rdp); =20 /* * If RCU core is waiting for this CPU to exit its critical section, --=20 2.34.1 From nobody Mon Jun 8 19:36:35 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012056.outbound.protection.outlook.com [40.107.200.56]) (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 0C82C3CFF67; Tue, 26 May 2026 22:50:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779835837; cv=fail; b=a+PA6Krzw/9tkmqAvLcxCF5dZIRUh86kVcGRpWeWWwaF2EHlk7WXgbP9N+iYjMRpbX0IEkoBlWJiIMOWE9Cig0U6aQbJQQly0c8OOMxCeAVioxZPYJTmRsbCEwLm0UJx1mgzSEGbDDB19Why3iykE1UNIz1yS16ynoeSnyJv2eI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779835837; c=relaxed/simple; bh=i5ccyOM6NQzmv+Oq+eBJFpH1UlwsRjLK8QAgVcA9JUg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=JDnROq+D4m4FpuIGPldE6Bda+b8z2ntHatS2XtUc0Bk2uLf/7pK7BIsBs9HXMYWwT6JuCWacdFS+dCR1muc4npoNuOVyKFNtYILT1PPydnQVCeJAq17AQDff2IDlO1txYAy+IfcygdaH1eMtW1GhGDQOSZMznWtIVKdmw3lMD/0= 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=bxf4QB33; arc=fail smtp.client-ip=40.107.200.56 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="bxf4QB33" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IuS+mekLlxPeW2uLpcwpWvTeopPTEb+/OvlDcZd9+g7MB2NYfDD82P8dkeCL480/zoM/3PkTLftRtJ/5/5EUPfm2kt7mgfFqT8VmWTGXuE6uN3qebKraW5iOtfcSilNsOyw5ZF3IUwMXsGEjlkhIecbvlEd9O98AvrTVeyTcmWNfaUu8jFj7bPVGor0seYlBDjmWuWxDlR0svJbVQUEmhAl52u8VQ5dNPvCTN5SICYCHb9C/ULjgmeQypMb9VFNZzSlfC2/lPF9Kw8Yi6mjxmO0LhrbdV99k9f3QzHQJ69/bw4xerG7sq3uionHfOzxg+AQrBMknNg64F7MyMdf6Zw== 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=w8caone8W+O1koWf1I0fbJ31miabks0BK1rNItW5rdw=; b=ccU3JXJk8wITo79ly7yJ5Ct1zP7qq9gg/BFbVUDezu8AVyVpQyHyVSVT/su3f4qnk3LX4wNLwGgz582bZkr+tsPoa6PnbZKdiiwF2liJUof6zVEIw2cmV83shgY2SfbMwde6wNecf6aJ87BrOmMJ5Clbkj9SgBgfEf8NuGtNw4o7bUXkCt6ViJeUlwnr52RDmPL0L+He6kefjxCrb0gWInJMI2BtjRVTxF9q264mu5xf/N1/okaXTHvwQXppdADOcvPUbaS6ikNnlG/dDjvRoq7o2xIXJUqkrwa7y0DrPv5XKPVQqXWwONjCB3X1+/MavELbDgR9Hz3LcbXUcHiStA== 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=w8caone8W+O1koWf1I0fbJ31miabks0BK1rNItW5rdw=; b=bxf4QB33d8t52ROJC18c6sQ77MRPe0dEpmqBmAIZcY0iRCr+aanosR2bjCaxMkTWDMvaCAOXKcfDL6elOB4E9wfRo0SJU+S7uvXIt8Y5VV3w6ladFWisE1h/+WttbWrsrrEEWXKSCByiIZjSSYbtxnRM4VYfUHdWPbTy+XD2itZtrAxSAdbPW+i7PYG/4TC/Q4I3ojbes0AVS4nxodSD/GCzflg3vJ5NT+IEmkTm0AbpX2koEzFwEdTSQFCjpB4wzULfuYTAmX/e8rSYK2yxyLH4VJvCyr3dH+xvcTPeiv0WTlRULQz0GkF8d09gJoUbqkQvSe3MEksfetBC/DxzGg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) by CH3PR12MB8353.namprd12.prod.outlook.com (2603:10b6:610:12c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May 2026 22:50:28 +0000 Received: from DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33]) by DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33%6]) with mapi id 15.21.0071.011; Tue, 26 May 2026 22:50:27 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: "Paul E . McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH v2 5/7] rcu: clear defer_qs_pending at expedited IPI entry Date: Tue, 26 May 2026 18:50:12 -0400 Message-Id: <20260526225014.314734-6-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260526225014.314734-1-joelagnelf@nvidia.com> References: <20260526225014.314734-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0105.namprd13.prod.outlook.com (2603:10b6:208:2b9::20) To DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) 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: DS0PR12MB6486:EE_|CH3PR12MB8353:EE_ X-MS-Office365-Filtering-Correlation-Id: adf7cfc3-8edb-406c-27bb-08debb792e67 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|11063799006|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: eoQ4ZlsQedWhhidRYjQUlRlSX3VVIkFKVRDQoOA+TKlb7PrN7JA/7ARqbCcOghkQE6IYZzjOnxOQmzcbwdtQI6bbY3IMxmC+SN17urYbPL1Om85b4/xhLchM5dXtikYYN1jFlkQZm0EvrUuxiCEt7p1Lp8axs3O4imwiSYvxKNMZSZ51h94zqIX2pkM8uJiycx4bJDsJaeLGmrsxo9oHZbzga5pg1DLbfor0nkzU54ZYgLeOXt8BaeJGqhx1yfcdQQuVg2maO4mEN3zJqLR1OyN+19gS3zR8nGTWF9LBQoy5QcYPoTIntVzQIbOCVVEQjeO5V2EqLzvB3PhNwov31eThdN5G3RB0x9NB7TLEMoK/LBC4GPCfZn7R2W8nfRedEsyZJZ1zgkhHawLAZQv0l9eDJtqv9/pKOWD5E3Qr+ZV5ZN2/5qS1spX1o+9tCrwvpocO5ZZtkNrqiS5Hg7a3sXWyKjeLy9vawMURIvwVBdyTCWpA5eIaaxZfqJOHtXmccX6IWxkquYi5wrtiChwE2+Rngaq97KY4xLgkHboBSLG9wWoJzI50VnXYyIGdUzf9cT+u7JaLRq0SWkMREWcwIci8jmEzXDwPy1gk65X/LV/TFCuzX7K7xoAQhc4HA8KznH63so67OvdKSqshRYae5sVmMaosjTOB+1+PQYZunzb82S6tl0leChiHGErNHILI X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR12MB6486.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(11063799006)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pWsk4oGmFgMRr56fZVRwIF94ocGNE7+m5Tbwjv3ASQC0HpdU+4MWxhybH1vD?= =?us-ascii?Q?kei1FX1cJqzNmoDw81uozdKdxx0KiyhlRD9cfhBr6XCXN3q8mVDIIW1H0aEM?= =?us-ascii?Q?WDZ/MvxGaHzohQe0zEXFV6h+WA0pfItgn+j9KLkCreM4R603mhtCVqAzcJzK?= =?us-ascii?Q?0vCfx455y3MHOWQRLthTixcTvc4Lc+qRslEq0gmXKSq82lGcmOorVGDUzszQ?= =?us-ascii?Q?h/bUNJcR+rGXesMrkZN0hrDSTNyj1Fa9mrMoXXXosWkYCQ4eSQDP5tDFKEx8?= =?us-ascii?Q?9Ff2Dso9Qw+rnKY6irGdc//y77ovKuI4RFmTV88k44ImYDUWKUW5OAQ0/owl?= =?us-ascii?Q?BvGuQ6HjAX3XgungMVlihxpD2UGNBiCQYibO7wDs/9umVffDJslL6oYEkONn?= =?us-ascii?Q?NaHtDgTFFTj164N3FmsDWIgxVmfOaYxoxrlfrEIbIbyzVeW6DPqr1y4P1G8w?= =?us-ascii?Q?sNVjR4P/HRRSLInvZkCrg4I3bYHu0ZtYyLz6UavFHSJQe1NfXQq0oJnzs6bs?= =?us-ascii?Q?Pzdn/IGWuetbDE0DYVAqMUHo1pnubnlub5O2GQcJSKl4YI7msH+/3QyLwp14?= =?us-ascii?Q?Ko2c1B4Je8OHC5q0B9pHTsGT9dug3UemMBzJWcNUJDTwjTofKClrBGxOFTVY?= =?us-ascii?Q?meYKJt1Efmej1ctpDrunDOyGghtTOTPKPtLVa0bFo0pmo1LtYxh+AWDOcnEE?= =?us-ascii?Q?AJ70QrkFUo3eZVTjTwKerYdRSAolGNlfosRpJj7MaafoOWY5Tno0Ivw26FYl?= =?us-ascii?Q?3QZCEBoi9SjuETeFaalYwwFW4WSWaz8Q8mjCKJSulXn82XUtYYHgL23dRiBL?= =?us-ascii?Q?L/0c9xTowHAODwxHDLHAJBIjRgDk+rXtvLB4+GVPCW47QIMb0d7uTF/j3z4T?= =?us-ascii?Q?GgSPsxhOhxaxfM2fd5lPlkdKtjjhL+S/kgH0Rgku1xM6L84fwpeDFI9XH1vE?= =?us-ascii?Q?kcOu3R+4iqVtuMLjmfEeuvv9kH8t3QcDr9p2SkN46MNJY+V5sy03KCkwTPUd?= =?us-ascii?Q?6CulyzNb7E2o8gObX4US2dmn2VMXKPBlpU6AV71mLMRr8tXGomVB8sLQnSFM?= =?us-ascii?Q?OHacomf0W5CUZpplQqAkbxja+EXJaS+lkBGmWtyJzt3bJDylNoN4B2rN22jE?= =?us-ascii?Q?vzEhihso2AzB5d24CEhIftSsPepAAzWrsXohSNo/JnDUNlqQuwmFtc1UdqIo?= =?us-ascii?Q?SfR+yGHme2PZg9MVmjEFHJWHTOqWC1B3qR/sabtLrWwmji7g3AklRgAxnKgh?= =?us-ascii?Q?Yxn6pzaemWe2hxGc38IqvMsdrfjnG/vTBso4yx4Ma7ZrOJ5L4V8pUVy3ySrB?= =?us-ascii?Q?qYajVQimKGcRHrIlo1zjKWHa4X/L65Zipqyl09yQC4xza5qc1iLUxVLwA0W/?= =?us-ascii?Q?C4C0qOdAry7RVMclmwQCe3UjLtpOvkFTBhqyVbsgSG58nbTkLnN6pjQkiwiy?= =?us-ascii?Q?Cxe35Bsj1nEyfwYzysCrBwkRrcR4Mt/FtBA4TJ+5fIvQSwQBR13ZuSh9E3Wn?= =?us-ascii?Q?pk7WDTQ/+NsEHA4B/cj5RaSx1y6jzfTTeD/nDIxEuPAFRIFl8hPpblpPtxu/?= =?us-ascii?Q?/9bDUybiYaLnVhNmnMY+0fTY5rVNqBpXcD1/7MFWdRquTe3A3cJgFyBR9TJW?= =?us-ascii?Q?+5BJSBaeqOgdNKj/ehD02+TeKA0qwk7yfuyz7KvwXTZm/OcHXiaXWUAZPURo?= =?us-ascii?Q?fe4eq6WzsiUdKkMJsK/iQwKqpH//6bmcX4LF0X+v0YPDrhN2gNEmc0BBEme6?= =?us-ascii?Q?uzazGcLf4w=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: adf7cfc3-8edb-406c-27bb-08debb792e67 X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB6486.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 22:50:27.8547 (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: mJqHjVjYukjH0DXLjCaJmWCudmIE4jo7I1XQoG5LxItk+XIQLXCAe7ZqRAIs8zFXqxNFm2Yg5+/tTBGiGMN64w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8353 Content-Type: text/plain; charset="utf-8" The per-CPU clear in __note_gp_changes() (from an earlier commit) runs only when the local CPU notices a normal-GP advance. When an expedited GP arrives at a CPU whose defer_qs_pending is already PENDING, rcu_read_unlock_special() may skip irq_work queuing due to the pending gate. Clear defer_qs_pending on the IPI target right in rcu_exp_handler(). This makes it possible for any arming attempt that follows the IPI within the current GP to be able to queue irq_work again, allowing completion expedited GPs quickly than waiting for one scheduler tick. Signed-off-by: Joel Fernandes --- kernel/rcu/tree_exp.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kernel/rcu/tree_exp.h b/kernel/rcu/tree_exp.h index 82cada459e5d..f8564a041879 100644 --- a/kernel/rcu/tree_exp.h +++ b/kernel/rcu/tree_exp.h @@ -763,6 +763,12 @@ static void rcu_exp_handler(void *unused) READ_ONCE(rdp->cpu_no_qs.b.exp))) return; =20 + /* + * Clear defer_qs_pending so arming attempts following this IPI + * within the current GP can queue irq_work again. + */ + rcu_defer_qs_clear(rdp); + /* * Second, the common case of not being in an RCU read-side * critical section. If also enabled or idle, immediately --=20 2.34.1 From nobody Mon Jun 8 19:36:35 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012056.outbound.protection.outlook.com [40.107.200.56]) (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 9162B3D093F; Tue, 26 May 2026 22:50:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779835838; cv=fail; b=oOwOvHus2hfNbjfoTZuxjF+KFIrasspus/fQbBEf/0MqTNCsF6IM6178U7tbIpqs3hs8/1Xp6zqMOowpvb3GfDq/y7WD4P/yg7BpAwj1V36SMFYga7a+3RhhkW88GCZUW1Q/Uv2MY14Ev3CBD+qd6GugiBHoTW3QLUtdvOnQrQQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779835838; c=relaxed/simple; bh=GNaTg8s141w8VgMdEG/oBdXZmreBNvRUazOiAZRig0A=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=sNhPbwSNNLT0Z5ev1MFniJl4F6jUtIio+xmUo17SKMmSBHCKLQqtWFhIMz3p5TbQdmwl7kckpA0iSiiw3id7z0zrJe1RnLkgiJu4MfVTWyQXL69B6Q1lt3iSatsKLfPFroi+S234XL22mxpl0pQS8Z57XXdAjcCjO1lcVwswQ+Y= 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=I1IfWW57; arc=fail smtp.client-ip=40.107.200.56 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="I1IfWW57" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nSKiF5I+a+7bbDeSPclywq27B2sDIj5fgn3I3Wevi/TeMk5Y8Sl6/TfUdLymC3Ql1i8WNJQuqBGAiNi86oLbsN7MQoD433Q5l33WS4HNIxacurG98aCn7l2EvTRQFDngPXdDpeJ6jeHNyFFw7UThYeZAocFlRT8VzXtnX23ZYfasGfqQ8H9ad3Ppo23lwkbSL3yq2vfYx46WNiug46Sd8iypyaXkfBHCp82hkVT93I2/HNTLXNMl3+8DH0m0VLghtmBGA6Csk4954+Z42fhNVIA5z3xm8AxqGTEec21Wl0q2LBpfBBhN7mIFOkJmQxRCc2+zlB6I4F3Vfi+4hjORPA== 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=6jo7E/v+R5EQurQ54R5j+qUgz/z/u+mIp8oD82ucCp4=; b=PQyLn/8j35undPbX7WF3sw/0VQqSDpXv1+ZCimaHxZjL94idQByCp3RybBa7/AiPyEhl1dMtLvVwmv33Qozb1qEtZnNZgEFoX11SpFBvYJInr7Efm9ZWurAfk6Mk1AZAQDDqGaAKi8RSiMtJylJMY08K2gSm9Hp72ysALfA3c0btQDBBY9jmCJLbQamgujvL0e0svFWnJ5yANsRKr2JHf0hFT99qnfheYD7/tSWkB/qRd3ad15OmM/GuNG3EnIAsv3gtswAi7xYeFxzCL7pxmCXrJA/JiK+k6bx8yOY9PXGvlryOA21nwysriuQjZh5ajfKMrMx2NZ8wGMv18XwY+Q== 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=6jo7E/v+R5EQurQ54R5j+qUgz/z/u+mIp8oD82ucCp4=; b=I1IfWW57dfBpahRVp4TkUEmpdBXABi4vmkryizszC0TlcAwuy04lFwxv09tGJwtjl1HtGM4x5GCMA0F44OterfExCRgsMc+Ce+L1QMyJkcaRHcCu/5RZAXaj1acINrGjdFbDTZ37kCy5/wSOHkee8Dm5TlIFS4vQDgnCDBeXLrRH8SP2EFYNzlSI0sMoJqjYp0FFT2Z+Ou1GrWeNlifUEcPOb4chcnafdNPvyS7cLh80sas8cbvJLyrQhA0PWIeVhazGqPB5KwtpDW0i9lLUjlmgLj9TgOPHxiKUgdOk+A/20ThN94fw/VoA8I3TM/TAeNGPzGztqQXDrt9X0iL7SQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) by CH3PR12MB8353.namprd12.prod.outlook.com (2603:10b6:610:12c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May 2026 22:50:29 +0000 Received: from DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33]) by DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33%6]) with mapi id 15.21.0071.011; Tue, 26 May 2026 22:50:29 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: "Paul E . McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH v2 6/7] rcu: set need_resched on softirq deferred-QS arming path Date: Tue, 26 May 2026 18:50:13 -0400 Message-Id: <20260526225014.314734-7-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260526225014.314734-1-joelagnelf@nvidia.com> References: <20260526225014.314734-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0165.namprd13.prod.outlook.com (2603:10b6:208:2bd::20) To DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) 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: DS0PR12MB6486:EE_|CH3PR12MB8353:EE_ X-MS-Office365-Filtering-Correlation-Id: 89e05ffd-e113-444e-c6f4-08debb792f61 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|11063799006|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: Jbftc1WNgt5XMlfIeed9Sv8rhVerDq3alfv3NCAVQ+n/QhXyaf65ZYm1ggHQ9nFFfjJcdzKdkflasWNBXclB36341j4mbQAJ8bOyQc6tI1TPmF+GtOyaBJdvuu8itO1lda3/KYWLNIVg5+aZzZvEsNTRgd+hXcPnFLZBfPl+0mZIy29jp8s421EqLmQEJXrk3RvMYh3CwWq2xCJ3QwWVILvqB4ae+8Xxn6/rbVAfEVQjACqagm9aCU+UbXckXfuWWxohdp4PsdlHM1gArGD5rWZ5TpYeKHTahjZRtSJKW51sMHQY4397zQ1qmcwrd+zlylK5Q4+KPIiEIKgNMl8W8M4xqwhWTWL9FbeO1Fl5ntgMOltIHjr7zE2STMJjVyGn3k2xI+L/SCSTmzE0AINJI/4zf/RMAPLoiEUFUQV56TlehfSMT/rR6OTal55D6ZNdtUQ18OivRTIKfPBiFgOloHkNJMVOgKucCw/LtugmyX7TwFCUkIy5P9dbUKK+LrorxC0hqadXH0pGV69IPiQLgazoxm/Wl3zi/q3lm+KzRN/PK2tjaLi0UCnMSN86iKNdSQRWa0HZDjxX58tXJHgpChBgQfwKs/iT9VCjecnVRcr9I1fPBrkJQ9AIOUgJ0qkXLYWe+d6NN6VFNy6NanPFsqht/0VbNlxYKJ3VJJS9YDmcxUrGL59MZKGfrfJQu5Hn X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR12MB6486.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(11063799006)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SNWuIQFd8QUP/kqzzZsgHN/CGYfVR5ZxJAi41nGOlzAApbwQY3unNSmMVy15?= =?us-ascii?Q?h0sVZ5PcuTS8XivXuSRBuS8+7bUL0FkaoI/jqOeoBLJCoJF0aTb68dRiKxJq?= =?us-ascii?Q?Cre5U+BUQLIgbKctkFSsnClq1PYtm8Mg+SlZeOffsBEzwJxtU1ZkP1BwyBpN?= =?us-ascii?Q?nGY59ZuA68noU8s9TiaXYHwpstAcFVvHBuo4RHwpO9IgJVOSEN63oyQWwwlt?= =?us-ascii?Q?VcJny0yVPu7sv22QHvtEmQKf5W6btDqqYAiGQ/Z7PJXTbXSrow7Izvwwu77e?= =?us-ascii?Q?M3jrHsP4KI0UI3DFdMU5OodQpRHDsRGGndi+7IDmlF5NozcYmxO27sxsdtLF?= =?us-ascii?Q?IFRj6wqEstl1qKRf78P2xVSbG2OxLW8fn+k7M9jDk0WVEvLs8ma2vSxzlQ6u?= =?us-ascii?Q?uakoelmq4ZC5sLGRmvX8e0chKyu9LP6Bye9bbip30ZVovKLpWGTCERVj3noa?= =?us-ascii?Q?J5mwm/WL4PEBMVq+PJ+IaYtRe+p7bNovwd83ijv3QGlsbWUJjEvPARJIlszV?= =?us-ascii?Q?N88L8QbJHrzhtPoPyP3drsbayOavHMs21TA4yWPr8HFbpG1RwTsiSD/0IFy1?= =?us-ascii?Q?j9LabN2WarILpajxYDh2Ok5jdJZrswfop1yKnMbdk65+q18abGTW3LxetV8i?= =?us-ascii?Q?/yXuld+02/fnTIlReu9e+eEVOQV19vdym42iBnPzxc4aypLPbEcvzvQJpzJx?= =?us-ascii?Q?Cg0A0mGob1QbnrmiS6s+/8bxhsFbAP2pXF9Vlbp6J/hJpx88y6h1aOS4Yscs?= =?us-ascii?Q?7R7afhJb6x9VOL4PKlbSlwUmHtipo/RGmGnezrvsUZdDtqRocIs4Sf0YiVg9?= =?us-ascii?Q?avgJszvWGq1t1vyOMemYo0uIBcrrfWOIiAN1dEJkBPBdbvwUAoqWuIj9e7YN?= =?us-ascii?Q?piF1WHSyL/Mxnw1eer+mCthpp9Lq+y0rO3yzR4787MRamjovTN1kVYntKkkk?= =?us-ascii?Q?SJMNAB2oPDTEkHATQOfExMJOgjByq+aA7SbQ1gQ6pmkzLlBZvHMNan9qcQFe?= =?us-ascii?Q?YwklCqQ9c7sVPh2Bv3BcZg7nXh32AcmuCrjyRdbWf+RUDvhLYHXoheV0Lde0?= =?us-ascii?Q?mWMm0M49zdYbnP4veLL/lSPw+bb8C0MlOpS6KEPQG3/CQxUAjvqapSbqIx3K?= =?us-ascii?Q?evtkAM3tPU0fpyjiJxrDVw7dOl91rWM88WXLV8PZtCXsmQ2V53nappVbeHE0?= =?us-ascii?Q?pYf664WoQ/13+LtO5WUX/+oFLltRit8/jVaHDadfw5zsp0VJFvr2Qil0fzAY?= =?us-ascii?Q?efeBZBKb+dqjsWlzFZSnWz1OZrTJgYm2e8tgxs7bHU9drnyZbcewShKXkjpB?= =?us-ascii?Q?0M1s942KsehSzgZZvgXHoJ27tTkG5s2yJGnn6q+Tk2qYdnZHBY32Ni/dkehc?= =?us-ascii?Q?bduZpEcHVxYAeRNzCeR+oDvMed0yd7EniGEXjgXuFYqra74QeCrNmjOOwIpR?= =?us-ascii?Q?mhJIqmmwK1vcNFzgjdZbeezVPFDfQjvZC3aVgevU/kbCYBf0n1knnGAaJJpU?= =?us-ascii?Q?pSTxUck3FE3EZX10cCu8Okwuwnd6ZOOeZnZwYYHjsT8T9pUJjcJkmt3fbzTe?= =?us-ascii?Q?jZZBVHrGuhhyQxfxzmIy6+Vo4lADxEiTHEddnw5EcWgUzTYdXSCvXv3Mv32k?= =?us-ascii?Q?oOnwspNEh7h5HBbv81BtU+yI41E3xmGx2IJgWbTAGLzXIrjsipbP9YAEn9Bf?= =?us-ascii?Q?y7G4+LkAXeX72bmAEdgIxwkcn9Y3rOtLsAe0MccIqZmaKdrAzs3O9paK2hdM?= =?us-ascii?Q?Wif4ZeiX1Q=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 89e05ffd-e113-444e-c6f4-08debb792f61 X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB6486.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 22:50:29.5294 (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: VfvP7M5bEG9gjmKgj/MluVVAnO/bSQ5gzeF29f0xhoWC0tZXAE4VhdjumFoRtPuTmI3czwHh/MJKKP+txZWS/Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8353 Content-Type: text/plain; charset="utf-8" The arming code in rcu_read_unlock_special() has two paths for deferring QS reporting: a softirq raise and an irq_work/set_need_resched combination. The irq_work path always calls set_need_resched_current() before queuing irq_work. The softirq path does not, relying solely on the softirq firing to do the rightthing. This results in a problem as follows: Consider 2 rcu_read_lock/unlock segments: rcu_read_lock(); // segment 1 starts // needs_exp becomes true preempt_disable(); rcu_read_unlock(); // segment 1 ends; IRQs on, preempt // off, needs_exp=3Dtrue =3D> // raise_softirq(RCU_SOFTIRQ); // arms defer_qs_pending. // Before this fix: no // set_need_resched_current(). local_irq_disable(); preempt_enable(); // softirq pending but IRQs disabled // hold it off. rcu_read_lock(); // segment 2 starts local_irq_enable(); // softirq fires: rcu_core runs, but // we are inside a reader (depth>0) // so no QS report; on softirq-exit // preempt-check finds no // need_resched -- still no nudge. preempt_disable(); rcu_read_unlock(); // arming attempt suppressed // incorrectly: defer_qs_pending // already PENDING. Without this // fix, no fresh // set_need_resched_current() on // this path either. preempt_enable(); There, add set_need_resched_current() to the softirq deferral path to avoid long latencies in situations where GP needs to end sooner. Signed-off-by: Joel Fernandes --- kernel/rcu/tree_plugin.h | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h index bb5f955a06df..86ac1e8228cf 100644 --- a/kernel/rcu/tree_plugin.h +++ b/kernel/rcu/tree_plugin.h @@ -747,6 +747,7 @@ 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. + set_need_resched_current(); if (rdp->defer_qs_pending !=3D DEFER_QS_PENDING) { rdp->defer_qs_pending =3D DEFER_QS_PENDING; raise_softirq_irqoff(RCU_SOFTIRQ); --=20 2.34.1 From nobody Mon Jun 8 19:36:35 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012056.outbound.protection.outlook.com [40.107.200.56]) (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 24FBE3CE0B8; Tue, 26 May 2026 22:50:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779835841; cv=fail; b=fMO0dHhLRPZWscPGIKGL1dzFJg0TMKHVzSVPOnIcGvO6ItRPwZKvwCJbNJj9RrX328mBIP2GZls8YfnPuw21ajMrtplIf2qUV1TDuJmI3sxvZqgyRBPjryNDtFr/5yYPzvZ/lhdYNmwJG2zv5ABim3/KnOp4wQ5KikArdaLQbMs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779835841; c=relaxed/simple; bh=m3/W17dDH4ZJ6qWZ8ig1bN1JTHQ/vsXEjbga7JJKJJ0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=LDSsrMnm7G1GuQCHWH5WpYCiDFCJGVuf+7y6gBd9nTOO30dkPxg2CI7ytXJejHr8D87PfLb2sBThsRwezbcrUe9cdYCHWZd/iFx+KQKVdEdgZAcXEuUIra5t97YuKUgKqSvPxh6mUG8Zb8G0eIlqbIgHIkrBVJyghH2VKXUDGKU= 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=r63egzUc; arc=fail smtp.client-ip=40.107.200.56 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="r63egzUc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=k2GmSoIqp3WsTBpLSRVLW0CjrTYllOwtbsYTslBtWu8fdazAdjeN87JG+PW1IEZh2b+ASGrzqsk65wZnUd6ybyPDccJv1LsaRUF8L9GjCSSk6VQzuJUMtgI2YWk7wNG1+O5MzMhKiFgnnkQsTsbc93WzyrCEpx2Dr43ctf+4SOSzTCF6vjouqZUCVuejwG16DkZxXk6QiFlibV7ZyqOqL5FgaxyGowwZ+wMkvEHpcQJUPBKKltTgTlM9s7bYCQNyiWqouVPqMwxDIwXm6ozBBIZpPK6jc2S9u6LhaPXupC9Q8HT9G37UbxBbal0gF+Pegea4QBRby4bHLGmHlfh0ww== 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=vMOtViZGm4FnGZVYv4DWF8h2epfA5JojjLpAyxu0zCk=; b=ECtk8DLSWyYDII9j5isctuoxGCMH6r1c8EM8KAJjuWZ4MXR9vGz8eSqQQgeDzpbhYHaMu7IGgRmaLECvpGgPvykiYbUN34glb5l7CaYGGdJ/TxWEmPb0U4fLdMOGNrdVG5c0rMuF9jdWME7XaSVOH1Chhyq4qrIpciCaY1KuP6WkpjfkH2MR7yv6NRjTN9VOV1J0QodZ2AFEJQ0xU40JamPON9z1mvxJ9ulNbOdloTerUg4jlt7SbtjxUGzc9PYz260G3Voel9f1G7deLLNTSLLP0tTPAcQBOnEkXY5PE4ejzXbgbcybLUugN/vlLHPqEhNJ2MAeOofOf6WHjYaaEw== 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=vMOtViZGm4FnGZVYv4DWF8h2epfA5JojjLpAyxu0zCk=; b=r63egzUcBpVApClL08303Yg/KH8Mf5XQzvJCMmXt1rx4cMMZAQPHcc5RXmL4LkEaZa5B7ytw2PS/J2hht7AhgvH2Z2jy9wiJ5ymYwdBTc8yQRJfzKPfbePuayuKi9dMOnR2SyKQsTfjwxyTOEEif1i1cBGYn/d86PnmCat3oYvJi8d6A5zgba0xTft7ifolHbStsagV8U8SdH9I5VXtlbsVKq5DjJld+stMZGzkvEb59vr5d+ESrq/B0JAkoOGSTHzQQ7EJoakNZkx6dgELepSCryhALAn2F0wen9GSaK+MuudeMCr8zTItGOnWEOwPjkh2rBSRN3orU21mRgsGKdA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) by CH3PR12MB8353.namprd12.prod.outlook.com (2603:10b6:610:12c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.20; Tue, 26 May 2026 22:50:31 +0000 Received: from DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33]) by DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33%6]) with mapi id 15.21.0071.011; Tue, 26 May 2026 22:50:30 +0000 From: Joel Fernandes To: linux-kernel@vger.kernel.org Cc: "Paul E . McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Boqun Feng , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , rcu@vger.kernel.org, Joel Fernandes Subject: [PATCH v2 7/7] [TEST COMMIT] rcu: detect stuck defer_qs_pending at GP cleanup Date: Tue, 26 May 2026 18:50:14 -0400 Message-Id: <20260526225014.314734-8-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260526225014.314734-1-joelagnelf@nvidia.com> References: <20260526225014.314734-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0002.namprd13.prod.outlook.com (2603:10b6:208:256::7) To DS0PR12MB6486.namprd12.prod.outlook.com (2603:10b6:8:c5::21) 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: DS0PR12MB6486:EE_|CH3PR12MB8353:EE_ X-MS-Office365-Filtering-Correlation-Id: 40b64f5a-609a-4c23-fab1-08debb79303b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024|11063799006|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: X556ulePvpR09g//dL2XyiaWL1PanYQwxJdFl5WbMLoeFDDbZGWy5a25Syc0HiRRSKSGN/wjR5aKpUveR89cIfHeJnslX+nnh5pO3YZ3Kfs6PENx1a2h16uxRHST5yimtwbnHDngQE1OPNd7ZAmS/V5JKxXdZfVZP0nKPu/NyF8Z4aGd9CwYe2UZv4asMs0xLeXYUZ3X2Vm3ZF8E26ST06khK4yj5omYnI+8ruObZTgbJ6pHS0WZAz4byeYi8C/ekheSO3/2oHqwSar8P+kunX9XHBKaevz81NQB5AEtlvoXmWx91ccOJug4wy9EirblVw4tByy9ROIybDcbVkHJZVb4fk+iaDlpFhiUqUp3vTunX0UXjVxsFT84cFjEtFURxK5ID6w6rR7IBPKQ6vEmPQFhx+HCoN3A58mNFPGdkw5qeeFfaxMPzWDmtyyt5ZStKVQTyD0AMMhRQDB9lDgdVJwdBwJVJcFPZRixk3MoRuG41G6CaMTKq0LVnOkjdSyib+7RapacPu64LoPkwyajqBbs7DrY1tAM/w6qq+toxe0rdkwvVyeHWRfvSYsSq0FwdgFabrIdxGWT3TQj6a3fU+oPsQgDoCszJyhTsMkRcefXCFjOuF0Vgb3NlDGKwQ9YVvdBFN4IZILYVjpwU4rFK4PE7EVckq41B/uWbdr52CmJ6bjfpak4PEv3CzwnPWIm X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR12MB6486.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(366016)(1800799024)(11063799006)(18002099003)(22082099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?abRwZNUSZb9Ji/cQEYeqfYOUIAGlTJ+kgXisgN6Y8VcUAF4X7GZhiAWRK9dY?= =?us-ascii?Q?FHdx3zUab/XAiWExKHPMznowTPOqlaCSgQwI4IsVuCiSeJtISbG1S5GS19Do?= =?us-ascii?Q?3HkiaX6S7eLf0hfrAPB5vs+fvNFSKkAQkMysaHBuA+jiiRWQWKXnjVdzKING?= =?us-ascii?Q?bKOUmRHQFgH4zI9e/QoKLWmJNsE8Z5CnXGcvapzS+5uFd7NcaMC4RFMGHEJe?= =?us-ascii?Q?hf2AKBaZLsSrX6EBA5VwXsqRDEALo5PMX7IEIGF7I/0u231jF18pn/A02I7Q?= =?us-ascii?Q?kAa/K+VJ+OFyMU77j3JXTOpzw788HWD3j/auU4I+urNw6NY0UJ1dsC4me+l5?= =?us-ascii?Q?WY40wUtcY4+xiMMUvpF04ABHVe8drK4SQFPWakYHlF45CzYg8suHynzQId7c?= =?us-ascii?Q?tkBjFLaKCJUlFM+SB68dX5LkndkurxawmQC77hPiWdjM37F8xs5RzjMrL8OD?= =?us-ascii?Q?QOo9H32iYF5wGI1uZfH/wGiPXe/OPD0k6MUPy7psDG/h7tKTnJrLU4InPY3M?= =?us-ascii?Q?ASq0WEFBasFcaMXG1KUhWGaONmLvGCgzwgT8Ypei4R0b9eunzz2fnBcHhRYK?= =?us-ascii?Q?/rHUSWIukxJIYOzntOMSHYuLtAmK0m0o3qgieFkaFI/dsyDdVoGrStBab9rG?= =?us-ascii?Q?Mv1ngpES+Sbo0xYgXpZEsT6oeLJlWJPT63KZjl6dRWytNdy5HXpQb9SvqxzQ?= =?us-ascii?Q?6NF3Mkkabnr0Thd2NcDaVKrf9j9R1S+n88MC92TfVXScbzqdD9CxAq9KWXxY?= =?us-ascii?Q?4yhUH9I8sGF/QyqPcS1akbADQ3Cxs6Xv0vgswZpCI3UPCHcJvIRdIawY4BpW?= =?us-ascii?Q?i1JVZfpk0WAPaJyzp6VMhKg4eYpqW1RLwI2Vs9Kds63yk06YNbVWiJTJ0Jgd?= =?us-ascii?Q?uacD0bauUYTVBng+cgnAqEk2BINCTDJmubBDnrgy9+6csj1ZUtnujNAd2ZoH?= =?us-ascii?Q?Tqq9+tF6526JKokgE4ijOOXCb30fxZFISrgqr6nZEvJyYP6glc2rxgCUOLdo?= =?us-ascii?Q?cTccgkQnPZKUu2HP+tpDuy+3swJPotIT/rd+4gD0qAfOctzeier2VmGZPrJq?= =?us-ascii?Q?4vlESDmhYarWV5P7Uepifz6WAPI9fnOiHfOd1pj4q17LXgKUuuwYNFfC7USU?= =?us-ascii?Q?eBv9TQm3AlG8UrOAApGT1Vt1syTuwPikOolMkNXTmBUGAkyNvlwgoKkHOETo?= =?us-ascii?Q?neKl83Z0VQWmjRG+RyvigZayU0LvFrFj7m1DudAsLt96cKrkcKtAhc7BIGS5?= =?us-ascii?Q?6OkcwcU2EfefchNWqY8BRMSPFXMmNQ3TPABbXgi1ycJYqSeXF8kN3KFqoEKj?= =?us-ascii?Q?yPOh0/KctGNhz8ThyTWogJKbHl8q9FzFPG4Ad8p9vkUyULlxE3S9PtGAEMbS?= =?us-ascii?Q?8H5YWyppUzLVinGBqEsMqxE0HDVRfib3oGEplLsO0p4jP1BN6QfF1qGCwz9P?= =?us-ascii?Q?/zEdpHhczX5cewTTzUQzCPaE5e3eewn8paa66+jEM1uVfFHhpW/TUYCTaCDR?= =?us-ascii?Q?Blx7zk2Il5GFxU0EmAAUINATtxA/qxpTjhWMFG/DaBElYt65HEwR1WnDWi5w?= =?us-ascii?Q?TJRdBpslNHyeFhya8hMwXM1htEMoo1jO6pvuFGThYLrTTRAyquU7zysY96YI?= =?us-ascii?Q?laXGWFSM8YltkVPc+W6PprfB2MTN4Sp0iOhQ299gLvyg9Fea7d4BEvRNeL2l?= =?us-ascii?Q?teUnJvkVsp+mYbCNqnQ/LPghNA6P0Xu0GC5dfJqLg6ZG/YUgAp2XeuK7F5tw?= =?us-ascii?Q?4d1eUE5JMw=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 40b64f5a-609a-4c23-fab1-08debb79303b X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB6486.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2026 22:50:30.9132 (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: BQ2x2eKFaV9zrz+HduQ8gKDFKXJfWs/xZWeeJrt5zKZQ4k1MDwg3+813Ibe/8Bw15gNnxHQdj9UuTUvfS7/Uvw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8353 Content-Type: text/plain; charset="utf-8" Debug-only stuck-state detector for upstream review. This commit is NOT for merge; it is a review aid. Reviewers can enable CONFIG_RCU_GP_CLEANUP_STALE_CHECK to gain runtime confidence in the preceding fix commits. Signed-off-by: Joel Fernandes --- kernel/rcu/Kconfig.debug | 11 ++++++++++ kernel/rcu/tree.c | 47 ++++++++++++++++++++++++++++++++++++++++ kernel/rcu/tree.h | 8 +++++++ 3 files changed, 66 insertions(+) diff --git a/kernel/rcu/Kconfig.debug b/kernel/rcu/Kconfig.debug index 35218ba74eb5..5a40c4fe544c 100644 --- a/kernel/rcu/Kconfig.debug +++ b/kernel/rcu/Kconfig.debug @@ -98,6 +98,17 @@ config RCU_TORTURE_TEST_LOG_GP Say Y here if you want grace-period sequence numbers logged. Say N if you are unsure. =20 +config RCU_GP_CLEANUP_STALE_CHECK + bool "Detect stuck defer_qs_pending state at GP cleanup" + depends on RCU_TORTURE_TEST + default n + help + This option adds a per-CPU instrumentation counter on every + PENDING -> IDLE transition of rdp->defer_qs_pending, and a + detector in rcu_gp_cleanup(). + + Say N if you are unsure. + config RCU_REF_SCALE_TEST tristate "Scalability tests for read-side synchronization (RCU and others= )" depends on DEBUG_KERNEL diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index d0816468ffee..1307f3fb48ac 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -2146,6 +2146,52 @@ static noinline_for_stack void rcu_gp_fqs_loop(void) } } =20 +#ifdef CONFIG_RCU_GP_CLEANUP_STALE_CHECK +/* + * Threshold of consecutive GPs with rdp->defer_qs_pending stuck at + * PENDING and no observed PENDING -> IDLE transition before WARN. + */ +#define RCU_DEFER_QS_STUCK_GPS_THRESHOLD 5 + +static void rcu_gp_cleanup_stale_check(void) +{ + int cpu; + unsigned long cur_gp_seq =3D READ_ONCE(rcu_state.gp_seq); + + for_each_online_cpu(cpu) { + struct rcu_data *rdp =3D per_cpu_ptr(&rcu_data, cpu); + s64 clears_now; + int p_now; + + if (READ_ONCE(rdp->gp_seq) !=3D cur_gp_seq) { + rdp->defer_qs_pending_stuck_gps =3D 0; + rdp->defer_qs_pending_clears_snap =3D + atomic64_read(&rdp->defer_qs_pending_clears); + continue; + } + + clears_now =3D atomic64_read(&rdp->defer_qs_pending_clears); + p_now =3D READ_ONCE(rdp->defer_qs_pending); + + if (p_now !=3D DEFER_QS_PENDING || + clears_now !=3D rdp->defer_qs_pending_clears_snap) { + rdp->defer_qs_pending_stuck_gps =3D 0; + rdp->defer_qs_pending_clears_snap =3D clears_now; + continue; + } + + rdp->defer_qs_pending_stuck_gps++; + WARN_ONCE(rdp->defer_qs_pending_stuck_gps >=3D + RCU_DEFER_QS_STUCK_GPS_THRESHOLD, + "RCU: defer_qs_pending STUCK on CPU %d for %u GPs (gp_seq=3D%lu, clears= =3D%lld)\n", + cpu, rdp->defer_qs_pending_stuck_gps, + cur_gp_seq, clears_now); + } +} +#else +static inline void rcu_gp_cleanup_stale_check(void) { } +#endif /* CONFIG_RCU_GP_CLEANUP_STALE_CHECK */ + /* * Clean up after the old grace period. */ @@ -2220,6 +2266,7 @@ static noinline void rcu_gp_cleanup(void) =20 /* Declare grace period done, trace first to use old GP number. */ trace_rcu_grace_period(rcu_state.name, rcu_state.gp_seq, TPS("end")); + rcu_gp_cleanup_stale_check(); rcu_seq_end(&rcu_state.gp_seq); ASSERT_EXCLUSIVE_WRITER(rcu_state.gp_seq); WRITE_ONCE(rcu_state.gp_state, RCU_GP_IDLE); diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h index 4069132f9d44..29d852bbe218 100644 --- a/kernel/rcu/tree.h +++ b/kernel/rcu/tree.h @@ -204,6 +204,11 @@ struct rcu_data { /* period it is aware of. */ struct irq_work defer_qs_iw; /* Obtain later scheduler attention. */ int defer_qs_pending; /* irqwork or softirq pending? */ +#ifdef CONFIG_RCU_GP_CLEANUP_STALE_CHECK + atomic64_t defer_qs_pending_clears; + s64 defer_qs_pending_clears_snap; + unsigned int defer_qs_pending_stuck_gps; +#endif struct work_struct strict_work; /* Schedule readers for strict GPs. */ =20 /* 2) batch handling */ @@ -299,6 +304,9 @@ struct rcu_data { static inline void rcu_defer_qs_clear(struct rcu_data *rdp) { WRITE_ONCE(rdp->defer_qs_pending, DEFER_QS_IDLE); +#ifdef CONFIG_RCU_GP_CLEANUP_STALE_CHECK + atomic64_inc(&rdp->defer_qs_pending_clears); +#endif } =20 /* Values for nocb_defer_wakeup field in struct rcu_data. */ --=20 2.34.1