From nobody Fri Apr 17 00:17:57 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010038.outbound.protection.outlook.com [52.101.46.38]) (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 0A5DA2DCF74; Tue, 24 Feb 2026 23:04:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771974293; cv=fail; b=pS7c7i9W6jCUuTOzI9wctrK6clpJPLvE4owqtrJfpgoZn06EzTso/E3O5TTr00F3c+clzu+qMQ48iYZhg6ley81Akp4IgS1KZIPKlLlZ99rbkqwOYeKAeZKovjaF0XjN9VTS28STYV40Nvr1J6dITur0eZiCy6ze0s2uVu0tJfo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771974293; c=relaxed/simple; bh=fgZXprSTqj1GVJK+iNyJMWlt5h2jQRHI/iJMCyYlJCI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=e9gnl6wHbAZw/tF4C/cf5369cuYBfbak5A3YcPom/oaIE/NsJOGlpxutlkVwXUsLkvaJCBxnHScmli/TXop3OaX/oafUh3plEZ/jAy65Xu2SZqe078XAvednZ0z7hp0b6NpDUv8P3jL+xS7MlsIFC6A2GOPHXvtj6HReHJ/c9k4= 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=lQXDGRbc; arc=fail smtp.client-ip=52.101.46.38 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="lQXDGRbc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Dasvnk6ihaHJOTFQT8zGwlg2pBe5euI6ix5EySFmrZKZTdq5htpIwI1kG3gfPdrsQ+XU4M+mSMmv0abl7eJ2wAEce6u6OsJwtHfidEEQ/RMf/P4390MBanDswMCrZOMFkCpoyl77XkIjQA5H3tnbB3WjXh/DHQfblnkR5suMQsm3w2qB7hVhEMGI782NXC/18sKhm760a3kJj4s2LvkBV70Rwf1I9jiPCTHQcwuXz7ZMYHy/2atwFeRnqKVJTnj0te4eUd+yjN1/V2Bu6MVA+n41tGyj1yHYSvvoZq/RriCYY90gxiKfx10drw6aJGRiS+chzZVEKAu2Yv0y8chVSg== 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=ZkMqvEwYK+PYi7sCof8ZJAsUfjsM128sDxKEaOQh5K8=; b=fWYj2X+G9uomFm0JWZeKugVsZ1+kAl5CiFdj59Xb2/KwFrNyasdYUn24IVWvJhHiyGfpB9+edc/il8uPVU2KLmrlYoBsDxNS/lMduHK8zmjYltnu5EFSyWygB7c+Ms0U5cLhkaGdS5oZan81dWSkgEpNmua0uBY6wp1nZSFB13XIc0cmIUpYc29R84PKe44I86gs3j/QxkDHsu5onxXBLr/H6uLMXLAmt4hf6lhrLc4wpm1e2nrnoA9A3xGpQHyVd6MlKEu0K6nqeMSmpxpl16SXhggpSqaVst3Zc89ATYXfTLNZt2PI6nAch9x7Q+TD0BXTE/dRe2ozC/tdkdGhtw== 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=ZkMqvEwYK+PYi7sCof8ZJAsUfjsM128sDxKEaOQh5K8=; b=lQXDGRbcoUidVg3/9j5dwzhNOSFbT02pp3s48vIPM47Bf7KeI7ZyXvAZd6AYNH8Y43uL62kxKtKixSBmYx8EPFPj8+lJ6jRq8lClNnlnxRVuaTJqA3C74YjbIMKhruc4Bd4YWXwTOULoOfVpX9yzdTs96mcw9AO1icDliL4fFoNoKlq17Epu3hCSu0j7w2aDs7wzFt9pKApyQWsWTH1CShZjUyRKqm+Jzbim7v62scUTGYtZvxK/jLvfKyfnCPiTGiQnBPMOlP6z7D/kNJ32pdjpgMgFPTHDu+VHkJsUSgPIBEG6GWQ+9XjIga5o4H448ImRQABKhuGkwPfxbpq5qw== 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 PH7PR12MB5617.namprd12.prod.outlook.com (2603:10b6:510:133::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Tue, 24 Feb 2026 23:04:48 +0000 Received: from DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33]) by DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33%4]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026 23:04:48 +0000 From: Joel Fernandes To: "Paul E . McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki Cc: Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , rcu@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC v1 1/4] rcu/nocb: Consolidate rcu_nocb_cpu_offload/deoffload functions Date: Tue, 24 Feb 2026 18:04:32 -0500 Message-Id: <20260224230435.3390963-2-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260224230435.3390963-1-joelagnelf@nvidia.com> References: <20260224230435.3390963-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR07CA0021.namprd07.prod.outlook.com (2603:10b6:208:1a0::31) 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_|PH7PR12MB5617:EE_ X-MS-Office365-Filtering-Correlation-Id: 4c61cefb-037a-4298-8a2f-08de73f91bb7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?DLqK0BU4L6B279KUY0z1bgZs7R1/rPTVXo8KuJmAi9BSrePdtoQnNilGC+nH?= =?us-ascii?Q?PsRXyWdQdZLfQn2Yn8U1C+QEulZ8hlGOtfzRkyTsizuwFU1Z0sF1pjqT2Qec?= =?us-ascii?Q?5bh9DqGktUthlw0DQZ0fEC6Dx36zR5bwcocdcYZAvMFwCMMOya9QZXsJseRc?= =?us-ascii?Q?QbDwpGTXAjZ8Qz4L5vqXo59YK1fscC7Z0tV1dFhdXJxQMcDXilQOYSmLk0ei?= =?us-ascii?Q?HUC1utKuSzUm2KgIVxXcEgbcfrdXPZjyHKAbpTG/WtcklHV2wKbzjKGiJerb?= =?us-ascii?Q?ZigtYX23lq1x0Md0P1NtrA+V6hfj6I9v6Cg9hKBBqw0REi1GV9q3WK2CrG/C?= =?us-ascii?Q?cuMieKQUm7Q3GhnyErO531srfEpiTqt2v1+h7JNG2EBxdmpvOnWx8mr5xuQf?= =?us-ascii?Q?9NIZhYigvrPhODlsyzdYwu/yKNWlB7ifOdedBhOeWH5Zhp1YDs1Tdn0Z3PmB?= =?us-ascii?Q?tApBVp0Vv6InLXhljlpTzBHMtxoNGE8ic5+eKAMd51raWuHraegFv/smHhpJ?= =?us-ascii?Q?lEvfbKuiYcsXr8cYwILAx/4DSD3CCxAyXfAKcRkQEzKQKCSKv8OjqhnxU/MU?= =?us-ascii?Q?xPDIzbqAc1X7Eq+Jds5ozrYdYPNB2470Sevcw3P0WeoD/fdRisu1MxGJPmTC?= =?us-ascii?Q?zHK1PpaBq5MfZLODaZNbquV7+cS83DnYHg46vg+XOky2/+KOIqwvE0dlXKyO?= =?us-ascii?Q?vD5xar8GfrttxBiygIo5Ue7w/LGAO5ctD+xibaO/1epZIdFlv4SosAgsAiN3?= =?us-ascii?Q?izvbcx2lPlhLx2Ht8GqpE7YtH4WYpp+eNE/86btdvELcYVVjJ+aUaaNoL4vC?= =?us-ascii?Q?vEVV/A3GBGKrkAm4zRJes3kqnKzQIPydIXQAjLL14O1bUeXkGlrudC7esQ4C?= =?us-ascii?Q?hQi5A3N32jd9nHBwL4ZM51Kq+a8fs1kjosLhjWEWu5PL9R+l+j6doM0qQ+Td?= =?us-ascii?Q?IxbmO5iBA1xOrbrhb//Y0JKU5DJoVhoxRhKOx2iu/5KB9ovjJpic4M5C9oEU?= =?us-ascii?Q?U9qy6YPULDmZgI3Z2FqxUMcbtfsI5FUydJrofq1HzqL3fO+VOczVozojFyzb?= =?us-ascii?Q?UDnmDRWg8UDJyJQBfz3rQAgMmyyMC+Ezv+38iHmZnNDEsQUjw6D1iGFmVUbI?= =?us-ascii?Q?V3/ljGprMocAzZlF3DDeyn90eGMungxyGRaOWWKfc3WUlOlGgZWu/4Z/l2ER?= =?us-ascii?Q?ERHUx/rK+iRHrW7snoVb74h8WIRodQEPBlmHGYM3GEMwfIzISgVwmphyT3A+?= =?us-ascii?Q?0flBiagcDoru5CEigLddxU5dwr+0sZTUPLlFBMwUp9jgOGUCHvU7iy99XZL/?= =?us-ascii?Q?zxUXpWZvJ+jwScooeRFUprG4bH77pjlnGI7NunVdiF103ra2diDp28nim/1A?= =?us-ascii?Q?Zpz6LlnQl5hY8gPoLOFQ2tgFD9Ls5y+a1lFkSJqPXtCB3IWu7xn95CzDQf1N?= =?us-ascii?Q?8XzDwcT3O4axTK49r1yjXFSqqHJM+Ot1qDc8x2TJvpoUidWv67dkdwV5ug25?= =?us-ascii?Q?tFxHCdh5+TU5e2sQ2/8b3pM2/uDPJD6K+rJX+c83OxXa3vGdL0p+lu6tbiZU?= =?us-ascii?Q?IpU+zruz0Au8M55PvQA=3D?= 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)(376014)(366016)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+1WSocsICxgiabuYqgs5wzvr2cCM1Bh7WjMmvUMVH49BLwlvfxmrtR90sdMV?= =?us-ascii?Q?y0D8Q1a+gbFpzf1nzosKmefdp1lqvC//i/lZQZO9EsSW8EG7TVdtfIvh91ox?= =?us-ascii?Q?tUoPmSkK4G0DkLfdzDhpYR02FxioJMO7bnV9Hq6b2p3qfWYHozUImrR/iyJc?= =?us-ascii?Q?TUec5xPvG+ruIhmkMyxbYKqgtEKZWZrrak7gwLLn3ltAE3V5dq9hg8aQZLK5?= =?us-ascii?Q?qLhdKZ+S2OHU65/0whhePXOO5HbpSFCnoJkjojAagno8pOoxmRxoqhGsHr0p?= =?us-ascii?Q?BR8re7EwXmh1bMkUiZVEmIRkFhBhPLJJB0iezqg/coL++vmbC7dl1neAaEQ4?= =?us-ascii?Q?KLxddJBdu6SfauH0B/CMyUCGoOp+vbg7QnWOSKOUdqRJH87qiyVs+qMuyWWw?= =?us-ascii?Q?ZVQ/mAj57WrIVxKLSMkG5sYuIG/BqlCvn2X0usozbpnZ7jmRpvp0HeObr1Mt?= =?us-ascii?Q?wEv+3i3wnYgfNhsqJ1ZEb+3yYOHr2G6SikAh+/GH3XXYrcEWYnxQjpjiPuoE?= =?us-ascii?Q?2faTN9LgTf97VjniC8CeWRqmAd21hUOw1UqvD6F4CA8KV/9Ri58baoDWImjT?= =?us-ascii?Q?vnbTij0lSNFEk6ejxWEpKr/C+i50cXhOL50aqFcMg86cSaWMKJKC+PXK/lP1?= =?us-ascii?Q?X1jqkpOjuuYFdIjOqDeKoX5bIwU96bHAfR0JLF3Kbn/ptuohhD+idmfnyRYE?= =?us-ascii?Q?l4LJLGkt/+v7zN7s4TfT7XD53CRa7vMTBoE4dIxaQ5lnpvlKPABBieXkQ+yw?= =?us-ascii?Q?gcPSb44up1ar6+RnwSSd2tTJ1d8AIjZTSCi4yKCg4uf+i/80UGj7dPcKvp47?= =?us-ascii?Q?4dVYzzNs8nEayAOXjZ8kFfdflNf4+nZkF/1P+aslBx9PMC75rt1UJrKMPyLx?= =?us-ascii?Q?giKpdE6a2Rccq/75wJ1S2ffRbc+7jc6NLXaV/vTNi/HA35RW50W8CpiJXyRZ?= =?us-ascii?Q?GnFFKY++N/ATL7qcVa1LfH8CKpmV6dDvB8wpa50p8hD1ToBV0PfNp/CE4C0j?= =?us-ascii?Q?DZTvOSSxq8ESgaaN/ADFYbRU59AL0CUKWZ8nBgV5vKdriATvVJckj4IveFaF?= =?us-ascii?Q?YOw/OE5ots48bfxSle060YOzUx9gotwfwtr4O0DFjXQRtdnOKdHTNGJDoW0J?= =?us-ascii?Q?9LpIrcPQ1JhrTmRN8b+/WoxQHhFWnqG/eQWDRpXKJiOwZLU8rBMFnbvvFrZO?= =?us-ascii?Q?lGIScLKU00iNalL38SVux9WG3x9hMYE+4bwNzELXch9Z+xg+6Y3gmX5M+OkD?= =?us-ascii?Q?fvO0Gls1XbeQ159n96muD48vV07pYxFRm+wMjTmsAM+LoX1roATHR549c7MZ?= =?us-ascii?Q?rWkul2Rp3QPLNUz4C8YO1yysTRNuOAAkQVKfkX67rvU2cNiJqQKZ3VMkHDUD?= =?us-ascii?Q?qA5aKVGztBHtl2OLyZe49h4c8LCZb5uehJdFzguQTa50h/dhDUyG/Via7esR?= =?us-ascii?Q?lP5oxUSKcL2o8tF+BzNL3qSyon3ZegAj1RPeGX5gmBWUtn4dmS9NOOyMuzLu?= =?us-ascii?Q?jirAZZTmsZk5HmndAq3j6xiczhoNbd6cgAAASAj1PLRyCkLtE6HBTFMBIGLr?= =?us-ascii?Q?PPr3LhIJh9ECFQKY3WUQxHe9jT9YyAqbm++e3mRSqnqxAvAp+N9W/BC0Yl0s?= =?us-ascii?Q?7CvPV9qpBmLKJc/kglVgo1DyBxW3ve0mpHFrwfofUx5SxdKigTygIMW7CiRm?= =?us-ascii?Q?FIsb+4+A/k1Q6MulTbzTX1OmVSjokeWTKLs+Dm8yvNasWNESKJ74WZ7JYcKS?= =?us-ascii?Q?+xHTizkUBw=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c61cefb-037a-4298-8a2f-08de73f91bb7 X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB6486.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 23:04:48.3211 (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: peTu5Y1JFQgNv1mDPzy281uEI8dP4RDk2GD3/IjeyxAswu5Q6CACkfL1mWdh2bXIC+nBevK8uzVrlTioTSvuFQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5617 Content-Type: text/plain; charset="utf-8" The rcu_nocb_cpu_offload() and rcu_nocb_cpu_deoffload() functions are nearly duplicates. Therefore, extract the common logic into rcu_nocb_cpu_toggle_offload() which takes an 'offload' boolean, and make both exported functions simple wrappers. This eliminates a bunch of duplicate code at the call sites, namely mutex locking, CPU hotplug locking and CPU online checks. Signed-off-by: Joel Fernandes Reviewed-by: Frederic Weisbecker --- kernel/rcu/tree_nocb.h | 89 ++++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 43 deletions(-) diff --git a/kernel/rcu/tree_nocb.h b/kernel/rcu/tree_nocb.h index b3337c7231cc..5b041134d6bb 100644 --- a/kernel/rcu/tree_nocb.h +++ b/kernel/rcu/tree_nocb.h @@ -1081,30 +1081,6 @@ static int rcu_nocb_rdp_deoffload(struct rcu_data *r= dp) return 0; } =20 -int rcu_nocb_cpu_deoffload(int cpu) -{ - struct rcu_data *rdp =3D per_cpu_ptr(&rcu_data, cpu); - int ret =3D 0; - - cpus_read_lock(); - mutex_lock(&rcu_state.nocb_mutex); - if (rcu_rdp_is_offloaded(rdp)) { - if (!cpu_online(cpu)) { - ret =3D rcu_nocb_rdp_deoffload(rdp); - if (!ret) - cpumask_clear_cpu(cpu, rcu_nocb_mask); - } else { - pr_info("NOCB: Cannot CB-deoffload online CPU %d\n", rdp->cpu); - ret =3D -EINVAL; - } - } - mutex_unlock(&rcu_state.nocb_mutex); - cpus_read_unlock(); - - return ret; -} -EXPORT_SYMBOL_GPL(rcu_nocb_cpu_deoffload); - static bool rcu_nocb_rdp_offload_wait_cond(struct rcu_data *rdp) { unsigned long flags; @@ -1149,27 +1125,54 @@ static int rcu_nocb_rdp_offload(struct rcu_data *rd= p) return 0; } =20 +/* Common helper for CPU offload/deoffload operations. */ +static int rcu_nocb_cpu_toggle_offload(int cpu, bool offload) +{ + struct rcu_data *rdp =3D per_cpu_ptr(&rcu_data, cpu); + bool currently_offloaded; + int ret =3D 0; + + cpus_read_lock(); + mutex_lock(&rcu_state.nocb_mutex); + + currently_offloaded =3D rcu_rdp_is_offloaded(rdp); + + /* Already in desired state, nothing to do. */ + if (currently_offloaded =3D=3D offload) + goto out_unlock; + + if (cpu_online(cpu)) { + pr_info("NOCB: Cannot CB-%soffload online CPU %d\n", + offload ? "" : "de", rdp->cpu); + ret =3D -EINVAL; + goto out_unlock; + } + + if (offload) { + ret =3D rcu_nocb_rdp_offload(rdp); + if (!ret) + cpumask_set_cpu(cpu, rcu_nocb_mask); + } else { + ret =3D rcu_nocb_rdp_deoffload(rdp); + if (!ret) + cpumask_clear_cpu(cpu, rcu_nocb_mask); + } + +out_unlock: + mutex_unlock(&rcu_state.nocb_mutex); + cpus_read_unlock(); + return ret; +} + +int rcu_nocb_cpu_deoffload(int cpu) +{ + return rcu_nocb_cpu_toggle_offload(cpu, false /* de-offload */); +} +EXPORT_SYMBOL_GPL(rcu_nocb_cpu_deoffload); + int rcu_nocb_cpu_offload(int cpu) { - struct rcu_data *rdp =3D per_cpu_ptr(&rcu_data, cpu); - int ret =3D 0; - - cpus_read_lock(); - mutex_lock(&rcu_state.nocb_mutex); - if (!rcu_rdp_is_offloaded(rdp)) { - if (!cpu_online(cpu)) { - ret =3D rcu_nocb_rdp_offload(rdp); - if (!ret) - cpumask_set_cpu(cpu, rcu_nocb_mask); - } else { - pr_info("NOCB: Cannot CB-offload online CPU %d\n", rdp->cpu); - ret =3D -EINVAL; - } - } - mutex_unlock(&rcu_state.nocb_mutex); - cpus_read_unlock(); - - return ret; + return rcu_nocb_cpu_toggle_offload(cpu, true /* offload */); } EXPORT_SYMBOL_GPL(rcu_nocb_cpu_offload); =20 --=20 2.34.1 From nobody Fri Apr 17 00:17:57 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010038.outbound.protection.outlook.com [52.101.46.38]) (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 5EB5F34B68F; Tue, 24 Feb 2026 23:04:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771974294; cv=fail; b=K2Hd56ovFe0qMrB3/POtEBz/ohniKCQIGjY6jJfULltTIHKnjwgS18VzCsEFq1N1uL8NvdcoaLOyuCSGbeeutHrgLuuSt3uTLsoZRxcoWmH+gowfQ/Z5Yq/Wrnny5fxDq42Rduvvyds9hVtCURtsL36hLLZtEeLVZGZj1sE/cbE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771974294; c=relaxed/simple; bh=JDK7MN9RbxWt9cq0BYYLFyE1H18itz9qaVB0mLhX8rI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=MuynFsVhdPVJiLQc/IjsmV8WJytquyayInc4KmbmAEWm54riY6PCIS6pmDNPCLrSzt3HeNmgJTrntupH9u9KlE6/V3NGQxlvoL4CXOJ17So1QOK7MgtQ8EKItaOZPg48zIi7Jc7NKQP65vq/VONmUWYkeUfzPiqKZllTqvZ8RLI= 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=GmUvSc2x; arc=fail smtp.client-ip=52.101.46.38 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="GmUvSc2x" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=civSHIM8Nq0tk7gxTX8LcsdljLfklrybwvoNXSaQWMa+MLTeiJCmISTHQXA5gmzJIvddBjBSl8ZuiS3n67ddBjAjkxagharB5hfcN8r/fulvgSP8Kih8EKPfnHFBtD7vZEwuC44ZOc8SB4SQ+UyPf9Qb1dS3y7TxcfMUotUMJfc3h6SDwNfzn1Z+5Rd0aCl4sZDBe5t7PND4RjsmJzTBfLWBkJeaRrxrWjPVmHxSZYgrMxUd57NBjo2uP5rG1evdNGc8O0hMsgTP1PG9o5os9+uANIBC6lqINbQJzx3CR3GSRQUW927TiJetW8dfNO/oVoVwsrdGA/fRadJUlEnDPQ== 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=9hrwcMbBhsXHW3usDc/l+GwTdBgqDyayy3DU58y10TE=; b=lOt/08np5MW5JOn82Fw54gEtsI0El3IzGJpdwXKCagMldH0fiPvRmuocb0f3JmqRkv72fZE9coGVYdPldzfSeXriomM2AR0PEZwaoZMZeDSJMYLl7J0RuUT2d/xB1OfhGUxDR4V2wVIGo7EOwZuU0WrouE3Y2D6zavQ+3gVFXPAspkLh0ZeU5J3vKlRsMGAg7gZr3Zd4XDbczyWQRddFVAlPRgVa8BcaIXcuTnhCG8aelVsB60FqiVDonzPGGKF68xlHTE3iZZtdY+xMNVDscsFW0yjatuCBn/Sb666t3W6foaOamnlzV/SiQLLDQPhPC2ZSQp1NG2PtIMajEvuScA== 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=9hrwcMbBhsXHW3usDc/l+GwTdBgqDyayy3DU58y10TE=; b=GmUvSc2xipGqh4perQV23RXN7QLCr5Ho4PSzsM1PtN4OkhqYyVK3VBIZDQUD2QymEnAlBP8nE3m+8IBFilEUzJtd7sdG4aWSioluaZf70jtV8WUGooVh3bv6o2OzE62CKXq3uy71mpFG2t8N0pPi6T+03o7wl2BiYRP5Ot/Xj3yhpoBYHbzZRY3CkfWPjdlWlZ7AtNNd2E2TIm/rx2U303O6H9pLA6IGA3Pjqh1GBG6Be/Tc5odo+6HG458HdxfeAb11cESkP6dZng2AGM/avYrGWPlVa3r9qEzQHcrnTtzYFDfKYBph/9H9Fbt0WcJJ4+zhrSZ6SbzvuQvNO/fYNw== 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 PH7PR12MB5617.namprd12.prod.outlook.com (2603:10b6:510:133::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Tue, 24 Feb 2026 23:04:49 +0000 Received: from DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33]) by DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33%4]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026 23:04:49 +0000 From: Joel Fernandes To: "Paul E . McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki Cc: Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , rcu@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC v1 2/4] rcu/nocb: Extract nocb_bypass_needs_flush() to reduce duplication Date: Tue, 24 Feb 2026 18:04:33 -0500 Message-Id: <20260224230435.3390963-3-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260224230435.3390963-1-joelagnelf@nvidia.com> References: <20260224230435.3390963-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR07CA0028.namprd07.prod.outlook.com (2603:10b6:208:1a0::38) 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_|PH7PR12MB5617:EE_ X-MS-Office365-Filtering-Correlation-Id: d6764a42-3ceb-4687-a62d-08de73f91c9a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Sw+WkpecXwJaOSomZi25oVDaL2X8qWFkQtLcdOMD9C0kqXF493pUsWekhuwy?= =?us-ascii?Q?JbNac+ZyGJ6ezlo3yafIrPO6TngGxlhKYDXT1K3F/eUJ1tIa9j6wvomuFAjY?= =?us-ascii?Q?6YGcnKY9yn33mH9VMOEj/T80yjh3LIhpFqVh02V9T0NOYRhpwJm6lCxu91AU?= =?us-ascii?Q?ksa47F2DAUEU+4bSjHQpCOwX7l1CV1spIMV17JJu5ChkgkxD9nHhCItYgpgt?= =?us-ascii?Q?BT2xyjNbOBxw6FN7rOP2jh2KhfiUzgtx9LMCN4irwZr6EB6Ytaw0EeKEODgj?= =?us-ascii?Q?ldLjUB22ba4eJxJcHkfOpvxPxYapDGeGmnZB0+ESJ8UwK38h0i0FTJxdgc44?= =?us-ascii?Q?UgHdwUt4dWUgWh44rPyqiHL/EvQ3pMHnpcf2T4blI3LIZDK0PFc3wE5Bh5ev?= =?us-ascii?Q?k4eBGfKPDV5ax8VhBD5oIUUm+I5ZVsfZMH58MilbpVz9dfBh09rNQzQaXU0z?= =?us-ascii?Q?rVeACYvtAQOnkb/MoUj3S1RPnlqgHp3FdWK71sxICFGLwLH5MH5wQp2+k6vC?= =?us-ascii?Q?spVbh71sIkjypGi5+UahOFWjwRVep3Be9OVZr1HL/zPGoxJG/uVcjDTvsP9O?= =?us-ascii?Q?KshDa8ZuTKmHSxgxXep8X7liYa+MQ68TNWWN7D/Z6ENVsPH1Fqbxd2eRPI7d?= =?us-ascii?Q?LvlrPl7Qu80G7kVblFB/U1H7PqQYHdO7d6vYVcN183vlATaPGdUp47L/Yg8N?= =?us-ascii?Q?UNC7HvoBB3TkfctNETr0wesL5XilB6A7yHHYCEx5r5fnQTfCYyWbCG/69RwA?= =?us-ascii?Q?12Uv+zxB05Fj6CaK5agKy2RKwQ4QboX+EcB1taD5H074LjkSeQJxYyPTajGb?= =?us-ascii?Q?IjH6zvR9MtysJVbXW0WG8dfq3jeFHxHt9l0uQdZqCN/iwzb6HPYQYA19FsxR?= =?us-ascii?Q?f7zcXx/GQrF0n9MOUg/jYgw5puC4Xuosy0TXjUf97lM3VOKAuqV/BN1SrM0w?= =?us-ascii?Q?D6NDDkYVBURQGfU/6CJDTf2VgNDAXjb65QjCexHazSnuhe4dG9cvehIj40HY?= =?us-ascii?Q?m7Y2jWeR6L7eOcnYYXwONu9+Be+1/3tyoZxNVHGfkEpEsf+f6uyjYBcqFU8Y?= =?us-ascii?Q?tLceueekyzhBe7DijvU3hr/Zen6Rk0iHTA4un+71V7NqyjhWgqzmx68kFFw0?= =?us-ascii?Q?14hXZIe3JpGvsCkkNm4SGiYaR2it0GGzCtrfHBVrpE2ppJpJj+DavUqoHgP1?= =?us-ascii?Q?Bg+JkwLVYjDqMdE/mMUQqc74d+oPwmNxt21635O/EVaqjuMnToXFIr3C4mfx?= =?us-ascii?Q?ylPNA83E0ExnZKSUJm51JmEZBN1eQbBGKb56n+Jv49xKEcOE7lQb1/rrsNAN?= =?us-ascii?Q?AOgX8sKoDfjSL34+EmMALTMCBY9Fikmw90WinpBCYdj3S1Cd7IBwVmk2VwIc?= =?us-ascii?Q?o4ALEFpSe7RSuh9BV7mcDKyFJcjPbGsTwgIZ4aaZxoqayedSv8vLCE4fALhS?= =?us-ascii?Q?7ESohTPRa96C6BGuScU7bJHv31qYGgBa6iloDLLD/HIwQTmHLa3RtE2rahTA?= =?us-ascii?Q?za+zzUyGnWV+75ZvwiQqaUtrXsOdyGWs46ittrGBgicmPhMkLP06GYwHgZq9?= =?us-ascii?Q?o7IjwkH+VLKAQy+D90s=3D?= 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)(376014)(366016)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?eGOxFY4ffJELDRHWBny9J6seSWbV9V+UL6RSyJH9/SgeTSm+e+FNzKSmYcKd?= =?us-ascii?Q?5e0kSW/lUx9azBaj2gHPP1cl5Om+pbFAOvyE3SNGWFa09WoE3ZlvGPH4ANYq?= =?us-ascii?Q?Becng+8HE3MwkJXUtA9U9OW5VbEXhFYm/sfw5w0FrsnBG5XQxtAKLA4hPCr+?= =?us-ascii?Q?vE2yVheIW/vKddGBrKNNcj5KgwVS+FYzL6ysd6oNQIePRcuXJBDB6j8z1Zcs?= =?us-ascii?Q?j64IT2aw+ECCTLu3tKkxTKO5k18T+dDMJsP5RTB3V63q9WDLV+bnm9z2GHcS?= =?us-ascii?Q?7b79PswtEgsirdiwxBDNBLgn64gxZEe0mQifRkb5OFcv6LFxoZD3PSKaaoI/?= =?us-ascii?Q?i76GZvWYgtVsPnnej67FaQeE7E1h5WbZ2Jo36dVPCil3TPwtC9TJf5KXe13O?= =?us-ascii?Q?6y/e/8LB81XCLr3SvQzh67+Mc0pwPo0rbsv6405zcSew+4HZSIkhW0ZfGsPB?= =?us-ascii?Q?6jCBMh1Y+AzFZjDOBmlvC6XkiL2CYi9TFMrem6ysA1jHkREslDin9j2mnS4o?= =?us-ascii?Q?5/CNq8CFT6UOTqA9y+mOx5Ng6zsQvrS6WtxjPRymMmMajEdJWjNKeAKkSrKj?= =?us-ascii?Q?Fgp30V0ZZ+PXzp/lOxWCDL7J2N00h/vzoesDXs/bhQncLUh+K9X06C/qWfY0?= =?us-ascii?Q?WdD6I3NptB5ItWW1hs3xoSZUjDCo5l+FZylDnS0TE+gyNfZFk1XhjoaeP6uK?= =?us-ascii?Q?ugUjCu7JTPbAF6na3d0HDHSLxelwEBWI2CV4Y9uFRP72kUu18OT+nagCek0C?= =?us-ascii?Q?VTGu3DLDxlRC6QU4cPsXsU4Qc7u0qZgajRBNFfcOeOxlEzF2+GqoFj1IkgZd?= =?us-ascii?Q?EmUiJGakqKz7ZpGUtk182THM2baNt5XpvW6Hf6NQ546l720WM4CIvCHHHVPS?= =?us-ascii?Q?zyhutjC9X4rGp58MiG1Cw+DuQ2dqAV89akisD1ULwHHc9SniMdD00Mc7xmob?= =?us-ascii?Q?PerqSiT8iJmmkfspR/f7NaJ3afG2R/sl5ENPp7BFWkWrXWYs4ViUZTX6j9nK?= =?us-ascii?Q?VewvcrE0gD+xlzpEGwgnnh+GifoOy4Im+ut78w/ZSGIdtuCtuGJ5WkyY4bgp?= =?us-ascii?Q?X3lm/I64snNaLwQWiEtYWNYYxXnbTpQWB24Dc+0gGDcgWgXLFUNpECTaQzvP?= =?us-ascii?Q?iRfEjLG6uyDqAwcO8zgB46oRCzudV+QtVdru0mlE7+XhxQPDxSFr1/2uPvQx?= =?us-ascii?Q?5HyDdUM/E738p18zgjHLMHu+nfNEbUwX1oPCz4vY3B35BJPgRzBBmyo5xZX4?= =?us-ascii?Q?s9YUo3MoLHsf5Zpa/eKSsKaZFjn5aq5eM/MFnVvYXRwTpsIcG2o5soG29MNP?= =?us-ascii?Q?zMjWLvtAtMR/v9rsatRDsemWTNmdKF2dPdtMfIwBenO1+nhSpKX8ib8YzaYY?= =?us-ascii?Q?j4hljE1oDB5xWS2i0s3VP1Mjot6Cu8IxiQnpG4IMTNpPn/bkADU5h/JkfJRE?= =?us-ascii?Q?f07dVFGmpK7Rj1v+9W3gd85siyf5P2rBDupBMC0fcv5HKc5+qHgFgyK9ksK2?= =?us-ascii?Q?z7KKyNleh7iLX24+iq1Rg7vsgfMbVGaJBOB1EKPA0+Cmu59vZ+w884ewPXjD?= =?us-ascii?Q?4to2n0Mhn6tyevMnQ3cjAn+R4ksRbyb/XThchJjCbwTpcTFg68GJlesn2aJ4?= =?us-ascii?Q?YgmWNOQ2qo28cNL9WMqNBuYaYd7X2ykzo5IqAUL1BUbRPo/FILW1MkxEy3Vb?= =?us-ascii?Q?XhEnMyJ5hbLTUMEIg6Sd8Sh1c9n0cQ8FBYwAi3d5dRSt0pr+lxY1QYgyEx0v?= =?us-ascii?Q?SJcrzIKTtA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: d6764a42-3ceb-4687-a62d-08de73f91c9a X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB6486.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 23:04:49.8459 (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: jGnN8DWvKOh9DZY8SVS8Uzzk1dS5tMASkyjXwc+kD3EbFUiMcUX8Vm9ySZVpPX0GtJWHNJ7D4bDL1A9YGTqYtg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5617 Content-Type: text/plain; charset="utf-8" The bypass flush decision logic is duplicated in rcu_nocb_try_bypass() and nocb_gp_wait() with similar conditions. This commit therefore extracts the functionality into a common helper function nocb_bypass_needs_flush() improving the code readability. A flush_faster parameter is added to controlling the flushing thresholds and timeouts. This design was in the original commit d1b222c6be1f ("rcu/nocb: Add bypass callback queueing") to avoid having the GP kthread aggressively flush the bypass queue. Signed-off-by: Joel Fernandes Reviewed-by: Frederic Weisbecker --- kernel/rcu/tree_nocb.h | 51 ++++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 14 deletions(-) diff --git a/kernel/rcu/tree_nocb.h b/kernel/rcu/tree_nocb.h index 5b041134d6bb..57183b60501b 100644 --- a/kernel/rcu/tree_nocb.h +++ b/kernel/rcu/tree_nocb.h @@ -378,6 +378,38 @@ static void rcu_nocb_try_flush_bypass(struct rcu_data = *rdp, unsigned long j) WARN_ON_ONCE(!rcu_nocb_do_flush_bypass(rdp, NULL, j, false)); } =20 +/* + * Determine if the bypass queue needs to be flushed based on time and siz= e. + * For lazy-only bypass queues, use the lazy flush timeout; otherwise flush + * based on jiffy advancement. The flush_faster controls flush aggressiven= ess. + */ +static bool nocb_bypass_needs_flush(struct rcu_data *rdp, long bypass_ncbs, + long lazy_ncbs, unsigned long j, + bool flush_faster) +{ + bool bypass_is_lazy; + unsigned long bypass_first; + unsigned long flush_timeout; + long qhimark_thresh; + + if (!bypass_ncbs) + return false; + + qhimark_thresh =3D flush_faster ? qhimark : 2 * qhimark; + if (bypass_ncbs >=3D qhimark_thresh) + return true; + + bypass_first =3D READ_ONCE(rdp->nocb_bypass_first); + bypass_is_lazy =3D (bypass_ncbs =3D=3D lazy_ncbs); + + if (bypass_is_lazy) + flush_timeout =3D rcu_get_jiffies_lazy_flush(); + else + flush_timeout =3D flush_faster ? 0 : 1; + + return time_after(j, bypass_first + flush_timeout); +} + /* * See whether it is appropriate to use the ->nocb_bypass list in order * to control contention on ->nocb_lock. A limited number of direct @@ -404,7 +436,8 @@ static bool rcu_nocb_try_bypass(struct rcu_data *rdp, s= truct rcu_head *rhp, unsigned long cur_gp_seq; unsigned long j =3D jiffies; long ncbs =3D rcu_cblist_n_cbs(&rdp->nocb_bypass); - bool bypass_is_lazy =3D (ncbs =3D=3D READ_ONCE(rdp->lazy_len)); + long lazy_len =3D READ_ONCE(rdp->lazy_len); + bool bypass_is_lazy =3D (ncbs =3D=3D lazy_len); =20 lockdep_assert_irqs_disabled(); =20 @@ -456,10 +489,7 @@ static bool rcu_nocb_try_bypass(struct rcu_data *rdp, = struct rcu_head *rhp, =20 // If ->nocb_bypass has been used too long or is too full, // flush ->nocb_bypass to ->cblist. - if ((ncbs && !bypass_is_lazy && j !=3D READ_ONCE(rdp->nocb_bypass_first))= || - (ncbs && bypass_is_lazy && - (time_after(j, READ_ONCE(rdp->nocb_bypass_first) + rcu_get_jiffies_l= azy_flush()))) || - ncbs >=3D qhimark) { + if (nocb_bypass_needs_flush(rdp, ncbs, lazy_len, j, true)) { rcu_nocb_lock(rdp); *was_alldone =3D !rcu_segcblist_pend_cbs(&rdp->cblist); =20 @@ -673,15 +703,8 @@ static void nocb_gp_wait(struct rcu_data *my_rdp) bypass_ncbs =3D rcu_cblist_n_cbs(&rdp->nocb_bypass); lazy_ncbs =3D READ_ONCE(rdp->lazy_len); =20 - if (bypass_ncbs && (lazy_ncbs =3D=3D bypass_ncbs) && - (time_after(j, READ_ONCE(rdp->nocb_bypass_first) + rcu_get_jiffies_l= azy_flush()) || - bypass_ncbs > 2 * qhimark)) { - flush_bypass =3D true; - } else if (bypass_ncbs && (lazy_ncbs !=3D bypass_ncbs) && - (time_after(j, READ_ONCE(rdp->nocb_bypass_first) + 1) || - bypass_ncbs > 2 * qhimark)) { - flush_bypass =3D true; - } else if (!bypass_ncbs && rcu_segcblist_empty(&rdp->cblist)) { + flush_bypass =3D nocb_bypass_needs_flush(rdp, bypass_ncbs, lazy_ncbs, j,= false); + if (!flush_bypass && !bypass_ncbs && rcu_segcblist_empty(&rdp->cblist)) { rcu_nocb_unlock_irqrestore(rdp, flags); continue; /* No callbacks here, try next. */ } --=20 2.34.1 From nobody Fri Apr 17 00:17:57 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010038.outbound.protection.outlook.com [52.101.46.38]) (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 CD777344DA5; Tue, 24 Feb 2026 23:04:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771974296; cv=fail; b=aFHzz8GpQzXEXwKpV9+9rLCS0ya0uXKgUeTeUWwWVcNF69MnpRK/PL07cQ8ruP6x812dmc3mb9dRP8u6ITOweUUWvmRyfvUrQc9Vxu9t3nH1nZZNpD5ReQ12F+hE+Rg9lZOnfXuEK2gb1Ak2b9cbZ32gO/khc2RrY8fR4MubZx0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771974296; c=relaxed/simple; bh=2GeXEDTKHp2+mWI/3VALbjSFpVrvd3r/+XxWNAKYI38=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=oIWopEvjnuvUfh5d8ihzy+M6QhVpM1xLv2lLddnEOLiCDSApxygIdNDYYwtyae+NMn2P7CQgr87227jj1BOyCqBxJGeCM7estPfx30+v84EPCZGLi4IEaPV94UiNfUn+HtnCB0O7YA/L8ciH9jPn5ibDeAzg0p3xpLOSj4SRros= 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=O692/lSh; arc=fail smtp.client-ip=52.101.46.38 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="O692/lSh" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bDTHZ94GlgIQoaVrtAcCiCCTX2ouoZ9hPZ7GgUtDPnpSRzCKTJ7nfYjAROzWeZks/o1i7zC+1XOfzttFYFX2JUToR3XjYdLg3NiZbQ4F71fSelhnq8zt95p3V1xfHFKp4J2AMbbaYzVOc2+I+R7SHVwywULHbjcOgia09X2FOLH71t89UiHXGMNIA1qsWUW6eF76176Y8jKB75JeJGeaIuzRYb9aexNjPqixze18hRanbidDv0vHYJAbd7yZTeyuAapQcVHMxza/QUCDlHkYNidVZMpE7LIm14xOPSm+zsapyrNQkoesFDEVOdkiMyntlXSjl/58ZRZMQPiTbZI0Hw== 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=6cg4qtQTMF+To4ZMOB4MPlgcY4bJznv5hnbX0LZx2m0=; b=wQ4ui9eaqNyLI+Vhh8KEO0MRQu0yddGIhLlXCRZAPysarEub6EVcpgFMfQ7fXK56BAGHyyi22u+HemgUNKTko3YvZBxbU8nG+lWrsuPLM0x4VS/2HE3UNqA151G3hjj58X+3xeDumeX6e/B9wvGCouq4c1/quS5RDo28l+Cv1UlSOpn+PmClh19bz8kwFf5jLoWQNloV8CL2T/yO4Am7ndFPVhUIriiBxy/h7Oi6BvgUqqzJ1mNPiA458pA00v1/3Gqa837J7RD8EaLkGiGwUMKKPuATXvCg75Oq6RKo99lnXgynMZXZNwHYOPecZExQOeYNufrmrVUsRorvTChf3A== 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=6cg4qtQTMF+To4ZMOB4MPlgcY4bJznv5hnbX0LZx2m0=; b=O692/lShA9PEfX3cfgf3uaEzWR8/HuMNy/0+wfXqy6NGBLMu0oGgwwwC+gog31CA7USxj+GoYYHu0OPJKE58NC9AfkXsEU72ynFNIeVc1n2mBnOCowQTtXdZE/VI/6C/s5GIvlDsrWrOFiXgYgcitEgiYJK4WrguYkqsjx0UIcqX6da1NXTTBt744GyzW5dt+Pa/QX6XeHqzavhzZ58wsnYS10YCQjSeGZrhVbIGV1Q52CR/CnQ7oK7csx1ZuhZa4jv8JUeGOSxu3MdQgzK1H3alFfB+84Tetoep8/7T8QHyPiEoOOneHU+nTcv6o27zu7wV3MX09aNlwjbdI+2Qcg== 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 PH7PR12MB5617.namprd12.prod.outlook.com (2603:10b6:510:133::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Tue, 24 Feb 2026 23:04:51 +0000 Received: from DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33]) by DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33%4]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026 23:04:51 +0000 From: Joel Fernandes To: "Paul E . McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki Cc: Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , rcu@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC v1 3/4] rcutorture: Add NOCB01 config for RCU_LAZY torture testing Date: Tue, 24 Feb 2026 18:04:34 -0500 Message-Id: <20260224230435.3390963-4-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260224230435.3390963-1-joelagnelf@nvidia.com> References: <20260224230435.3390963-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL0PR1501CA0015.namprd15.prod.outlook.com (2603:10b6:207:17::28) 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_|PH7PR12MB5617:EE_ X-MS-Office365-Filtering-Correlation-Id: f0858163-97c9-47d7-da6c-08de73f91d5c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?VHK5BSC8N6SqWgWvpzJ5v9Oskwr0UYM79H0P+N54l1/eknntGHbkWvtP7kwF?= =?us-ascii?Q?SF/iWE9+fYygylpHic/4QjATP3ORx8IkO6FUl497FzhZIZj1DEKRuArsAhcQ?= =?us-ascii?Q?2WUz4MUKf33p/VCtRACqlkAIp6xZ8P2xj6xET/AzAmn483vRBsVQzEwT+gRm?= =?us-ascii?Q?yTUdJKd3FLzl263ZgWv0IAKM6jvSmHs0gvrs8LJgTcMqrqZrMp+5Xsq4EjaX?= =?us-ascii?Q?DhnlbYrHkIaDxvvK15PBGa+ADSFYC53tSAqynKoHn/zph0BuMOPmaut80ZVz?= =?us-ascii?Q?PxwLj/yXrgyIk0tLeXdlJKqusdwo6K0BnV+LBzaaXtk9y9bLT9hppkmy7Tc1?= =?us-ascii?Q?v1DhXC2MO1YOMxBhpCMttARDTQZD8YYX5JfaxOHPkoOh/PEBqncR5bWMLxow?= =?us-ascii?Q?QJJuKgzpIAu4dSZZ6WWrNMZM4EAcUDD2UDne3H4yqip4CobU8UD99xw0FiP6?= =?us-ascii?Q?hn6skBKgzdqwyq9150tSal5QJt+OuY5DXlYORVcH08aOyFZZSFF274CDHcxc?= =?us-ascii?Q?3kO10OtrErJ+q1Rb179L8lvzjJvkoXAIhKti60R1p4lEBtpvZX2I425xGxLm?= =?us-ascii?Q?IFst5Eu4VMgcp98uv2v6czfHSt2tgsSPqwQAjERsIDRdHW8dnEunbiP/Zub4?= =?us-ascii?Q?6hc/UBEjWSwQ7JdjuGGoBZPUzymETHZjIC6OzYlgjbY3v9qkEfd32nDljmUl?= =?us-ascii?Q?JKPJIi78DH87rjUsv4X41M4VrJZpA6tSGlxS5TyJtU0JVpaOLxy9gKGrupmg?= =?us-ascii?Q?eGVoLooDk5jsKiFZ9kLkxeszspcnlqB6P54PLodCIatlCfeZ2ZmqeCfDRaIL?= =?us-ascii?Q?2mNVC0vjEE9Oe9e9lfpPX/wLDB6mAMLlR3+EnSNhwOaksDnILIfUkCVO3vOb?= =?us-ascii?Q?zQO727l9/nekRZSyfb3erHJTs8NJs2gnKk3EnY0nf+4F9FOYjE3vPVc/VJTV?= =?us-ascii?Q?YI9XBCqgVX9kjxNUAsPDBq3s/OJ1aa33U61Wm/6Lveblf6hMfUgW08+rEyBX?= =?us-ascii?Q?dFiuCr/7Xvn+oNoC4HAkbaQmBEYuQM6tBrEXW+uRwknQf9Q9JgWO4FGASzoS?= =?us-ascii?Q?Xp18iBG4aNxv5rOSWhUpllvl8d9pnvJGL79DDbmIOXShnzZvk1Q3Ip3DgR/I?= =?us-ascii?Q?fKLlFr0QFPDwdY95fYC5nL+zeW2PKCIz28liKc5hU1n/dOq5mXtVTxd0C27v?= =?us-ascii?Q?fOR/0mGdehUfKJ5W5y9K4c1oP3IxuofSXL0crHfJ0alh8zoF7tsYNxoCQQ/J?= =?us-ascii?Q?eewfaBIFxCmUDsIIjwS8GP1HbHLbxX92/vMassrefg9WCJbBAWvfjB3HQdHp?= =?us-ascii?Q?mnIlzYC52/LHa2dMqIdpkFlyTe4wmvD1oYcQQa1OprdjW1GRlS3x7Z8IJ/w2?= =?us-ascii?Q?c/aNIM9LhymBLHT+cvJN0H7VyWDcsHJ8HEOmDQ2v331PRnuv7GpuY0WzJDmg?= =?us-ascii?Q?mINUhAwfXytvzXvweMfEELZd/rVkjF6DecNAYc9mL2wWdVCKmTRaWgp1HrQ8?= =?us-ascii?Q?ps0Od3v0Vf3G6gXUzHFiwIJR/Z+kdiT0kGOj/qnjwINd0QUrrHj7wBWvoWtx?= =?us-ascii?Q?lSJZrI0HF2LbEghgEXM=3D?= 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)(376014)(366016)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?C0JArJo8nwhe+XCcLeAMV2HG0BomQAx006r5jm2Jr5AhLVzHDebkk+pf7IFI?= =?us-ascii?Q?EAy1WT9xAzHTESO6pmrpUEFE/X4Js+hqxBi4g0J/cuDZh6utGyoJL6HBmdLX?= =?us-ascii?Q?/0vNpfzjvfQdqwXpDK3+K/BKbVk4P7X7TFAlB/tJJyWasHbItoTPHVdxKvOo?= =?us-ascii?Q?OHpxw1x1nEOVvHF6qlIkhjAoymtBsq/8NZPshSgWmPRJLYgFjBsU1EhMw0Q6?= =?us-ascii?Q?0PIvlrreUE6JdERFjzt4t13DJS08/L2y8ie9fBkcuuY6hiR4nwT5YDzK79ic?= =?us-ascii?Q?+BpxtJ+oS6lu5qjO27ntRnkktNW+lzOHyetLh4fr8r23fTXLfjVgwit+XTZ2?= =?us-ascii?Q?W/VrMjzvPRW2Ojift2ouS1N6qySmh6jWcG16bEIgZB/GvDrylFUunlkgzqlj?= =?us-ascii?Q?KmXRds16tHeFCTSM71aVVNP4ImFpKKOfE0H5MnugyvdHS/nqfwou/QwBDdIh?= =?us-ascii?Q?ypuT80CM02XD23TT+FSXb+iRoQ5Fm/Ukorpf60MrCBx02NgqG+bDekXnyDKw?= =?us-ascii?Q?sTMbfT2RPX4aet/nMp7bCsE1GxYobnk6rP0IL9M+RBipfUZ0+o0cC3e8lz33?= =?us-ascii?Q?9pgJxyYHq888QPZMtH7JqGxQVaGbrUYcOFHj/ZI8VJSl9t5rgwhF1WvS0Zmq?= =?us-ascii?Q?P3SIHQ+nyHUUfKGrzEJkty/ILmtvl9SMseGCdyk5TRMKKGGIxiO40APxtOaj?= =?us-ascii?Q?Y/LZU+rdjsKkF8ENgah2i+nTqupxXDXFAsGaHctAQLzQMm/krU86l75WFPQ1?= =?us-ascii?Q?+8KKK7uE3G4U4d0suaG12970bsQX8kQmIE+TH6NkRz7OWE4cQt8LcZX53eE9?= =?us-ascii?Q?VP5tKFg9wQtugnGkamd+r2Srsje06B/qiZAle+raKxKUcBls4OMbZJ3oTSjM?= =?us-ascii?Q?UgUvfgNcsbQeYSatqJLwMkEBUQ2qrZbFk3m1/1EwE2lXBgeR2BOCnpkurP5/?= =?us-ascii?Q?Ug3WqcoKvDRCfWSWWzWUDJRq1lmMYQzgsrSQVUQfT7lTBiU126qPUA/pQ2Nq?= =?us-ascii?Q?0/quR1/aFiqMCoypNu5OH4xZMYLba3vLPFoq9VSu+pbSkhbWbMWjdNP7SFJX?= =?us-ascii?Q?ohRN1fSG6Y7JyiU3hic5iP2s0D61eAC7TpM5KaMs8wjdgTV28cnmo3Ttgd69?= =?us-ascii?Q?gnx6jcWhUvpGSps85qVbrwU8NJD5ylwdA2TtPGSSg+Qd2eDIdKp7B9mJc0sa?= =?us-ascii?Q?2QhMAYAgJb8k190CZVMol5aFTPR8oG9vGiVW7DnQJozPcMZk41dbYphT7y/n?= =?us-ascii?Q?tw3Eld4CEPcgUvUnZvVWkDrxUaXRrT9bnlJBugeXea0vbmuiTzakqOM7chMO?= =?us-ascii?Q?eGHhdMUONnH3KWXGh7KNhMvDvWSjfczFKKCxmMUcJAmvSGmKrGoF5PJs2Uz6?= =?us-ascii?Q?sbUqBeAOtbqfrFVPsGSyXWHNoyVlQbDeLXM3PjvefEMLktmBfP4Oa8ebcKkY?= =?us-ascii?Q?rn8s18WxQDhN+CQjU86FzX1GWqMsvxZ0wGRfisz7NRRQqvm9qC8U+lmLCG7b?= =?us-ascii?Q?r87F4PUz1vmJEt3Ee0/GgOIZv54r0LhxSJkejrjvC0jjQdABO66wcNkJgXpN?= =?us-ascii?Q?+H1NA18X3203UzNiHz3dr9FMGeje2OI63FwhqGHVv1DJwKSHufF1Qa9bnU/i?= =?us-ascii?Q?sTXFHdH5111lrBBaQHltxGgxo7uIHpae13QknWUB/Pjk2+Kh7SW/2J7V0OH+?= =?us-ascii?Q?XjReoS7mvS3FhVvtZbJzZY97TlsNBf0KcnovIhCh4rkYKKC6mEswPyk+fqhF?= =?us-ascii?Q?hjXnFVJW7g=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0858163-97c9-47d7-da6c-08de73f91d5c X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB6486.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 23:04:51.0995 (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: 5GPXu4pIjlPUzxkPr89lbAi8uH8oMUXKw122xFimDzMlhNKvXe5vOHGSmfnEAB+QhKxu109nRjIlJ/uUR2nB4w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5617 Content-Type: text/plain; charset="utf-8" Add new rcutorture config NOCB01 that enables CONFIG_RCU_LAZY combined with CONFIG_RCU_NOCB_CPU to exercise the lazy callback code paths in the NOCB implementation. This config exercises lazy callback paths not covered by other configs, including lazy-only wake and lazy defer logic. This config is not added to CFLIST to avoid increasing the default test duration; it can be run explicitly when lazy callback testing is needed. Signed-off-by: Joel Fernandes Acked-by: Frederic Weisbecker --- .../selftests/rcutorture/configs/rcu/NOCB01 | 21 +++++++++++++++++++ .../rcutorture/configs/rcu/NOCB01.boot | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/NOCB01 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/NOCB01.b= oot diff --git a/tools/testing/selftests/rcutorture/configs/rcu/NOCB01 b/tools/= testing/selftests/rcutorture/configs/rcu/NOCB01 new file mode 100644 index 000000000000..bbe6d28210ab --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/rcu/NOCB01 @@ -0,0 +1,21 @@ +CONFIG_SMP=3Dy +CONFIG_NR_CPUS=3D8 +CONFIG_PREEMPT_NONE=3Dn +CONFIG_PREEMPT_VOLUNTARY=3Dn +CONFIG_PREEMPT=3Dy +#CHECK#CONFIG_PREEMPT_RCU=3Dy +CONFIG_HZ_PERIODIC=3Dn +CONFIG_NO_HZ_IDLE=3Dy +CONFIG_NO_HZ_FULL=3Dn +CONFIG_RCU_TRACE=3Dy +CONFIG_HOTPLUG_CPU=3Dy +CONFIG_RCU_FANOUT=3D3 +CONFIG_RCU_FANOUT_LEAF=3D2 +CONFIG_RCU_NOCB_CPU=3Dy +CONFIG_DEBUG_LOCK_ALLOC=3Dn +CONFIG_PROVE_LOCKING=3Dn +CONFIG_RCU_BOOST=3Dn +CONFIG_DEBUG_OBJECTS_RCU_HEAD=3Dn +CONFIG_RCU_EXPERT=3Dy +CONFIG_RCU_EQS_DEBUG=3Dy +CONFIG_RCU_LAZY=3Dy diff --git a/tools/testing/selftests/rcutorture/configs/rcu/NOCB01.boot b/t= ools/testing/selftests/rcutorture/configs/rcu/NOCB01.boot new file mode 100644 index 000000000000..5130bc84c435 --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/rcu/NOCB01.boot @@ -0,0 +1,2 @@ +rcupdate.rcu_self_test=3D1 +rcu_nocbs=3Dall --=20 2.34.1 From nobody Fri Apr 17 00:17:57 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012020.outbound.protection.outlook.com [40.107.209.20]) (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 A3F3A3563D2; Tue, 24 Feb 2026 23:04:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.20 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771974308; cv=fail; b=BlD5pycnckyBLyMIlqO9mnkmf0ONMY/q5aT52oP2eopMbPG2gz775YPcOx+nS1f6F71npOf/jRZ4hVqUK06QORZH2CR30tOhxCUWj5I1uktQAMSq8/HFZmE7G/jelRbXUyzf43ZAqGSMa3TRRIgtby81k3IZ6+Mrce7G0mWscME= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771974308; c=relaxed/simple; bh=9qARNRh/Cw7pubVzJETs8rvvGjkJluiCCvCitrmwNV0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=ZoobiTFVaVhoeO32QKfT8/cxp0ku63QGFyW5njJvAEKyamFZ/N0hG8vCAYAoPRzBV8cL/z3p+nfYzld/6KF8OypW+9S/6YscGc1BZmT1B5zhFbp37z7PlUjx+FIdagW8y3w92FboK+y14T0DYS3h3qbhQA298N0iTIAHCY2lujo= 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=aNT1/hP2; arc=fail smtp.client-ip=40.107.209.20 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="aNT1/hP2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=liz8+F0TRZYs4UpRlPdqzt/9ZclITNn6zVuLc0cSn1IBx3e1TZZIhbf+h9rTIiKFSDrkRqh2t3LltjsVptG9JrXUWlxuTUvJ6rhWHESPXM02dQM0yEcrlT42H8KJpoQEAyGZ9qBmjTIdmm8C6/aD+28/MaYzZ5SZ87weOebPiwtJaFSAaxN008/uZ5ZE40Xe/3RsgeAJ3lMApA3tlTWzPswDmFlC4zQ8Jbvk/sU0F+73nMtCcxOPpZaqBTFvlTDUKTDApmFB7nnjULi4jBEGFQzTcqCXqhhEiivKeNRLSU1wiYliMaUI/dhO3sTCc6S8D8A8ZgEcQd9vaUWxoIp+5A== 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=mrMGOZLaLJHOiI6ndcVwB4lA/b8LH4YXsVMPZCWlzbE=; b=OD4tBDNtpL0bC0RXZ0vnUpQY3gKxqCyqVgLYQLU/KOl7Xec8t2DaEE2EnWj5F0u9/6dH979LVUSN0i3XDfD1IhRF4RkzRu2RtjnkvtALZIcye/RaqAKzJ8RXYoYVc/KssBdBA+7ytEq/SsirUDyNDCYuIZSC+D95NMnzCPWJZgzisG6gYqPf1TBVSivhQDDIHwWiUpmOb2Rg+tFIqWuRXIDq2ug5gMaIZFPH7cxmZxGFdurHoNne2NIt1VELikRjVS+VFa1RO7qVju2rRJIITqvLAtlVg2QRmxenp7A/ZL4DuD71y+R+aYO0xL2h8eueWNcUqw6KLA0go1gJ8hKJAg== 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=mrMGOZLaLJHOiI6ndcVwB4lA/b8LH4YXsVMPZCWlzbE=; b=aNT1/hP2cpNy8LpiuIkQq0kKQgZEpUjMStuNZY3I+BPLScKPebkT9HDM4yF4753vF2rozJI1qbP416D/6MfKVT/2PtMBVVQkMKL/L4mWvXMsp4823BLBx2kRLD8mu77Y3mcViZ03PRHXH9iB3VHM7wWV42tJeXALgEJLHovIu5sydBRLwnkIAfp/AIgP4tw+iWtfRpgowXmh3kngUbfHM8EXNBwOXtxneofJ2yaxJLf6KWaoIzaDEmlslWqJdMz7qTkVtP4HEzQwHZTeOgRSFQGuX77jIUAec48XcNRDTPOay+lgKzYpEsz96FXYx1/uvCGZUZvSg3mPyVtGdXfGAA== 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 PH7PR12MB5617.namprd12.prod.outlook.com (2603:10b6:510:133::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.14; Tue, 24 Feb 2026 23:04:52 +0000 Received: from DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33]) by DS0PR12MB6486.namprd12.prod.outlook.com ([fe80::88a9:f314:c95f:8b33%4]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026 23:04:52 +0000 From: Joel Fernandes To: "Paul E . McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Joel Fernandes , Josh Triplett , Boqun Feng , Uladzislau Rezki Cc: Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , rcu@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC v1 4/4] rcutorture: Add NOCB02 config for nocb poll mode testing Date: Tue, 24 Feb 2026 18:04:35 -0500 Message-Id: <20260224230435.3390963-5-joelagnelf@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260224230435.3390963-1-joelagnelf@nvidia.com> References: <20260224230435.3390963-1-joelagnelf@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL0PR1501CA0020.namprd15.prod.outlook.com (2603:10b6:207:17::33) 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_|PH7PR12MB5617:EE_ X-MS-Office365-Filtering-Correlation-Id: f4aa6008-6ae9-4097-ad8c-08de73f91e5d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?9TJNbek9MsVFOKgKVo3wITCtUaNYKIh5M9U7kOT45gDZ8IxYKzxf1U/eBZ5m?= =?us-ascii?Q?/xtrFu1C2FdlYGp92PMWNqVNcTzy1C6J6ihxGvIDkXt4GQwXNZ9zv/A166TZ?= =?us-ascii?Q?KUC/Fwr0aJ9OjvRHjQyhD4+Cs8/7BkuOfQTngUuRcvn/4prpEkHszaXg3mlg?= =?us-ascii?Q?1vB3Dy49lvQvuK5sDichsj+KS9Z0Jjfjse6vSiqYu/nhcDjq5Dw9Th79mRQV?= =?us-ascii?Q?OsabJopntG2FB/qBX4Kcu6MYthAVWOjXTxTg8OaN+crpIuZRBKGsz1aUY7Ok?= =?us-ascii?Q?61VxYo8cwLH3chsq46lKDJN8iNpR/e+YWICB3m2YTD/KY+l/yNjLh6CJQW0r?= =?us-ascii?Q?Uo+S10Rc6qEQy8cGiSGKnHHaDoINI9h16632VQAAK/tKXcWfX0dG04KTzo71?= =?us-ascii?Q?NHaZ8p9IqEHp6tnMBVUE73cT8TprlcTqRGKS8Ce0wh9HSwvtjeb7iypIfnEu?= =?us-ascii?Q?0jyCpFEWSP2ZD51Je9Ue0nGz05pB7uJOiZXtqHVveslwcvqS9Uw8rmMq2zkY?= =?us-ascii?Q?CtGFrRFIcBCNs6J333k2W0Whxbivd4XkJD4NenvRGsAUjzSlJk+Fop2hIK1z?= =?us-ascii?Q?FZxAzrJtSuVivrN0Mm2M/Gnmb1Q1hGZfFDqE7CqxyOJ4y0WzH5SX6+W3efaz?= =?us-ascii?Q?iMHJ4Y1nkoaNi8MkyXTPgwO74G6YGhQFdZlPkLOfdKAdKEQxWudU7LZcZs/7?= =?us-ascii?Q?WGDpIV69V4Cz4ghWICw4XACWv0T78zpXEFiDHrEbpZy2ZLi26sH8+H2SRJf4?= =?us-ascii?Q?jO/rOEcUQibEQpy31/qcpKlwrRyOLdQzxPO89lJvgIf38q71K3mJOblgIK4x?= =?us-ascii?Q?2kpBHYOsRa2afRNUAi49N5z4XZFLGrutogqIhH/zcjGTSgif+jhCUgrFpzLC?= =?us-ascii?Q?oHDJixnW36BFR1rcUUhgVPVccu5Nohn1/pC6OW4a28ppC6Dw2FqzDfKIRIFz?= =?us-ascii?Q?bkOgIHJulXN1vJjsHPOOHEL+lE0SRXG8s1FW5KAwymVSxgw46qM0AZKUoDaG?= =?us-ascii?Q?Cu7FcVlamQEMEPY8x5E4MSS1Yf0l88SJmpVEldb6Y57Qc6PQWJxZaKceCBdY?= =?us-ascii?Q?y527aGqwVZlHYGDYoxhhFdfzzsPSYWrU3JACGjGTtbw7A7dhDy+N7HJs2Lf6?= =?us-ascii?Q?RYEGrnhMSnDjKAXXNZn/kGXrXPuuOLNcSInL8Mp+mFk5TPizbn6rtdWWKVVj?= =?us-ascii?Q?h4XeHDdkfk20w03TSdxVC2mWWAaKe4JKarz47jcD6ZujhDEon1dQAz5z8LuG?= =?us-ascii?Q?0KFah+/dTvJOEFNQ7LQ59H4csl2aGPCn8dCUYBjwuIV9DDEbWovYEPQ8OR/A?= =?us-ascii?Q?UIPkh0u1MDUIF3KbWEgcDZeIbM9jaRsbrF3HnqXRmPlfFLs31rrxknJVvHDS?= =?us-ascii?Q?T2o++D4Q/CgE4pQxMXMXAohWymbo8ndvUHCbcyydgOZmAjVdolUmRLma5uHa?= =?us-ascii?Q?XTwFL3jCHEkWz/L650wK2cjqKUk4ePi9XeFPiTb/QNGavgtMVjZREiMcdJSJ?= =?us-ascii?Q?p82UXY4SablzaK82SWu582oVyXErH/ZkVuq+4bUKbX7WGbGY1N17Y3TNa7N3?= =?us-ascii?Q?NAu4j8KLOuDfjMFnUJ4=3D?= 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)(376014)(366016)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?UHDh3EdJTO/sJt6skIIuOH/dQQqUMLZtxBpHb0eHiJOlPQWQhncf9Io8QtCG?= =?us-ascii?Q?XnVa4OTP4j+89LVQVwQO2dHf20kLrYYpSilVopaZDzfJmUB0kuMspCMDEcT0?= =?us-ascii?Q?Kd2cj3Wv6M9joc/Uin1bLneZNCNQB+ISOPdiGUSIvWMghj68rbx7WI85a293?= =?us-ascii?Q?kWHd5K3SzeKXdY2MvdGFLhbLjUeYCGsAbdyDRunCkKEMCFeRXGrCq05pRqKJ?= =?us-ascii?Q?k4jo6ypem03RJ+PRJo/BVFYwirv/+vYodqQFRpR7pW+Kd2amsOgSwFMOYqcV?= =?us-ascii?Q?0h21Hiid93ZaSxMn9r9DTXwSE+o1lPQwS+Xg40bNhNV7HChIIWQpDONPPNw4?= =?us-ascii?Q?KUjfz26cckStGeW4dAT3Is1J1k2BxxVU/sBIHESK6wgYaMncPrp07z+N2cZo?= =?us-ascii?Q?p59L9sg7mlY46Lly/rcvNNCzyV3NFy9sf1bWdb7EmEtihPHLgqJdf3CoLJY7?= =?us-ascii?Q?Zm+EhAxF3S4pzYbulMD3xbBbT/wu2OxCPVD9wTZTdfZJElMdmI9maH2q2a8x?= =?us-ascii?Q?j9NsAg0Om7bPXGuEfrXyX7CedrgIZXyK/kwycb17Vvc33qBygCfdxBuaUBDI?= =?us-ascii?Q?gLdzZwmozndOMUYtQ/bTxM9Obj1vBPKNLWuJwd1nidINHq8y/tnMEMMYTk+s?= =?us-ascii?Q?oynHTPAPH2FJZJR1JsTNd+HY7BB9IzJJup1iq+47UaNybZD0eZIs3nbMr5mI?= =?us-ascii?Q?DY7AzYTSJsDL1zo6Ti20GoyPqrzzV4d3Fl1mDVlBEib+Ku7yGkIBXjbw2I0X?= =?us-ascii?Q?oRj90550+LNWsPwDrQVxiRG2hiF/w5lVfBr7HdqxHjvRJcezVP6Ej93qEQPO?= =?us-ascii?Q?0+ahIvjK8KyCFJXFFxQlD+9RmkvnbrGZpQ4HMdrrRMyen7W9gvjxgyeSUmUO?= =?us-ascii?Q?6GF+aKfQVOacoBSZEjgo9pcPoHOj/UP9Nx0yXiVcMprcA4dJL9R2hJIQltMz?= =?us-ascii?Q?5DvxGjZuR8jhSNZaFk3J06ws3L6YlTNk/xabRt5MBPn47gSm3jotTHCuE+H7?= =?us-ascii?Q?Iyve6YxCuMCi0F2Z7wp4uLisyIdLIY3g2RPDU3bl+UN4g9BazV3lA5qXqYBk?= =?us-ascii?Q?ki7zjSb3YRclseuwKE8ZDfiZtaW/ezrlxOge3NlIGMmKb2KIZqH8zUxaLAUT?= =?us-ascii?Q?rRcBCHUa4Mcmmou3stpfJXMbLG+Kzvtmd3GRwRN0nT3M+fsgfGjV1ZR2ICQ2?= =?us-ascii?Q?fOzzXejsjnQbMdQC8pXn/mQzNAYlgSkhmZ4ZqpS7mIwiX8XzKJFXUMKNbCqb?= =?us-ascii?Q?uP/TVTbhx94XO5gQyd5NYq6mctyii5nt7REcKa+oR/nEkr5C/LSIchClMbs0?= =?us-ascii?Q?15tqK6Pbk9sbTUzflUKjoNBu4Ve/r+VHq2o8RxKPxwEaKV4uFT4kdVxR3rPi?= =?us-ascii?Q?AfzIQtm91kyuYlkLV9Gy91vllXkAuAdKO5umaPNFnOIaC9f3YAQ3/V6dZp/o?= =?us-ascii?Q?Ep832io/YZc1TCxCh2PabzsOmeLcHL3Z+OVReEM9XleBfrHpbzpr05+rJcxZ?= =?us-ascii?Q?/fQgCY9lbjeQZ//Tf9zAbxipfcdoSeg6VH6Mk+nLi5YMaTzoa8IH3tnIRYQw?= =?us-ascii?Q?FKytwy88sO5MZo5EAzMTZZ3duv6MtJIcBIJoERI3AMpkxHwb/Mr6tAnmw1Q0?= =?us-ascii?Q?1b92Q4G/aErA1ZMRc7Z6r53bztXT6jKG34RN8yV7kG7AMfIUvKa6Ke3pJqQa?= =?us-ascii?Q?aQCRWm8TI5rqQv0S+U5C5IdAVee5VBMF+17HO+i/gJV41Y0f2+f4Ypr0tv7M?= =?us-ascii?Q?/EEFNHZstg=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f4aa6008-6ae9-4097-ad8c-08de73f91e5d X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB6486.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 23:04:52.7840 (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: kdmtpp0MloiqLEfg6RbDyVzlTKJ5SabFn16vrOPvaLWg6c7M+t5J+Hdfqh4RelOSSG4lwDmZN0JRNlZk7LOHVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5617 Content-Type: text/plain; charset="utf-8" Add new rcutorture config NOCB02 that enables rcu_nocb_poll boot parameter combined with CONFIG_RCU_NOCB_CPU to exercise the polling mode code paths in the NOCB implementation. This config exercises poll-mode paths not covered by other configs, where callback invocation uses active polling instead of kthread wakeups. This config is not added to CFLIST to avoid increasing the default test duration; it can be run explicitly when poll-mode testing is needed. Signed-off-by: Joel Fernandes Acked-by: Frederic Weisbecker Reviewed-by: Paul E. McKenney Tested-by: Paul E. McKenney --- .../selftests/rcutorture/configs/rcu/NOCB02 | 20 +++++++++++++++++++ .../rcutorture/configs/rcu/NOCB02.boot | 3 +++ 2 files changed, 23 insertions(+) create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/NOCB02 create mode 100644 tools/testing/selftests/rcutorture/configs/rcu/NOCB02.b= oot diff --git a/tools/testing/selftests/rcutorture/configs/rcu/NOCB02 b/tools/= testing/selftests/rcutorture/configs/rcu/NOCB02 new file mode 100644 index 000000000000..4c2b8cd6d8fd --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/rcu/NOCB02 @@ -0,0 +1,20 @@ +CONFIG_SMP=3Dy +CONFIG_NR_CPUS=3D8 +CONFIG_PREEMPT_NONE=3Dn +CONFIG_PREEMPT_VOLUNTARY=3Dn +CONFIG_PREEMPT=3Dy +#CHECK#CONFIG_PREEMPT_RCU=3Dy +CONFIG_HZ_PERIODIC=3Dn +CONFIG_NO_HZ_IDLE=3Dy +CONFIG_NO_HZ_FULL=3Dn +CONFIG_RCU_TRACE=3Dy +CONFIG_HOTPLUG_CPU=3Dy +CONFIG_RCU_FANOUT=3D3 +CONFIG_RCU_FANOUT_LEAF=3D2 +CONFIG_RCU_NOCB_CPU=3Dy +CONFIG_DEBUG_LOCK_ALLOC=3Dn +CONFIG_PROVE_LOCKING=3Dn +CONFIG_RCU_BOOST=3Dn +CONFIG_DEBUG_OBJECTS_RCU_HEAD=3Dn +CONFIG_RCU_EXPERT=3Dy +CONFIG_RCU_EQS_DEBUG=3Dy diff --git a/tools/testing/selftests/rcutorture/configs/rcu/NOCB02.boot b/t= ools/testing/selftests/rcutorture/configs/rcu/NOCB02.boot new file mode 100644 index 000000000000..c212ae299b0b --- /dev/null +++ b/tools/testing/selftests/rcutorture/configs/rcu/NOCB02.boot @@ -0,0 +1,3 @@ +rcupdate.rcu_self_test=3D1 +rcu_nocbs=3Dall +rcu_nocb_poll --=20 2.34.1