From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010055.outbound.protection.outlook.com [40.93.198.55]) (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 0FFC7372686; Wed, 7 Oct 2026 18:41:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.55 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791398481; cv=fail; b=JOlkfogBUnkwXHkyILq08oxp9WcZ5IjUWRIMFIw4LoN/wK+j5J+WmKqcN4axKfnoL8mDw33SjXAn4DvsiCRf+J0CloSmWwCZ7hh9yyyjVj5WtijzyHpDwnQJIPfm4hNIhWN80PD9NavsNfN+U/vJmgrWlKDIYrzCYuz5kvoMPbo= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791398481; c=relaxed/simple; bh=zi77yqyeuC9E2MbAPyj4FZFZlUS3+5Wk4POyOdPQvio=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=NM9KoKsVuHpb9sxuktAy48M5ehsjC1h1FBKnrREmF4me3pYrr1uqMXu3YCKrXCtTHuk4hadzNoX5YHfHDUyPBgyd8/rPDsG1b+Hi7+eMaQjzSJGyZ8b5+KkkmaP+UXpwTbLWf1xcyKVs3YDFCZiRu+OK16b5rofLwYAqugOsmwo= 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=SVBa/4n8; arc=fail smtp.client-ip=40.93.198.55 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="SVBa/4n8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a8+hAvJ3RrpxXByjBphDC6MJP0TG1K2MsURoBdpHoIElWfW2VWaOZ1lzHJS60EWNnSEaceUMTk1153kni9G3G9MVV0vCruNYoJ+cGu0PGF9piv4z8b+s5p/zB+15S8QaQuLECE/5Wjx9I4lIHknWwuOKTvrzFtA3R3cTdOraLvQQ6+QoY5qn4sYJZhqAIBEBDRsps8joFeES0e9tZJiTd5jI84SVsER5/wyEZ/JidCYa4o9VPxAaOVeQOA902sx7gFeQPVeaQ6xfkPcNLRBmWHVoQJWrIJYwWaqe4R8H9ePjHPwVFeVNN3YT557cEfLpg95Ua7UufG6SPj2y8XhvyA== 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=Xe6ID+bZlqtBW1bVP0ExkDex/hp98McNVbJmbTXNkAk=; b=xUiyHnWQLdapZv8n4CeYnv4Cf8ZUMFSdIZLFsinakZ3VDnXpvnWUPiplqDr6fu7EOvnZqF+RcOhRqEMcWYeSUpnIOPdCyFRIgfuL8z0OZsfcCbBGYGbM7pBGuU3AA5/h9URFRy/rbyAoZLMp2DSdeoSCHbxclsJTE4qomDJ7iEnrlMESxoZhXKcbLSiCQYzpw8GfWtQnKXZoNb177qtvTaMmkVCozQvBGrKLGT+4ZuuJoLS6HdFtNfk/TvpcnaRce1dsLLTeb90DwZj9767L7VnOpF/45+f3w7b48GeGZ/4Udq39WL8vyPq5vqBKYZ06590KTVwi1IVPz0SLPxVIqQ== 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=Xe6ID+bZlqtBW1bVP0ExkDex/hp98McNVbJmbTXNkAk=; b=SVBa/4n88zXNZAVvXL+g7p1rACV0EdtLcxv/IEn1U8vEzh6wtfG+U+nbf7vRED+/4hlYn2R6ihYUEaKBlhExFmSbizpCbhqgZfFM3q/6DEIFESV6RK7DBamzkveksI1TEIFbl6a13vwR/5IFmm5+1Ist8g6saO5//TVsSG58x/6zY9iK8rMpOWsMWoIyGH0RUHfR8D/iDvsT2ZMz43k5EyAXqQtJc84Fo/0CvliQUbHh1CbkUFDmnLVmGnA2IVxtYyTdzWoT1iyHYGgBvOMO1M2lc7N/ZwlzUHci/8hNfwJT3LPymJ5ok7/87EMxPa0Fm7kDHyDhk8fbY0nMafkQ8A== Authentication-Results: mx.microsoft.com 1; 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 LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.496.16; Wed, 7 Oct 2026 18:41:08 +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.0496.010; Wed, 7 Oct 2026 18:41:08 +0000 Date: Wed, 7 Oct 2026 14:41:05 -0400 From: Joel Fernandes To: Yury Norov Cc: Andrew Morton , "Jason A. Donenfeld" , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthew Wilcox , Peter Zijlstra , Ingo Molnar , Will Deacon , Boqun Feng , Waiman Long , Dennis Zhou , Tejun Heo , Christoph Lameter , "Paul E. McKenney" , Frederic Weisbecker , Neeraj Upadhyay , Josh Triplett , Uladzislau Rezki , Steven Rostedt , Mathieu Desnoyers , Lai Jiangshan , Zqiang , Onur =?iso-8859-1?Q?=D6zkan?= , Kees Cook , Joel Granados , Anna-Maria Behnsen , Thomas Gleixner , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Mike Rapoport , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pedro Falcato , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , Eugenio =?iso-8859-1?Q?P=E9rez?= , Sebastian Andrzej Siewior , Clark Williams , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, wireguard@lists.zx2c4.com, netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, rcu@vger.kernel.org, virtualization@lists.linux.dev, linux-rt-devel@lists.linux.dev, llvm@lists.linux.dev, Yury Norov Subject: Re: [PATCH 16/17] rcu: assert static storage for RCU sync and SRCU definitions Message-ID: <20261007184105.GA3837481@joelbox> References: <20260915030336.1192299-1-ynorov@nvidia.com> <20260915031334.1194975-11-ynorov@nvidia.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260915031334.1194975-11-ynorov@nvidia.com> X-ClientProxiedBy: CH5P220CA0001.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:1ef::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_|LV2PR12MB5869:EE_ X-MS-Office365-Filtering-Correlation-Id: 96cebd4b-8beb-4a8b-00e0-08df24a28d52 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|23010399003|376014|7416014|1800799024|56012099006|4143699003|11063799006|10067099003|22082099003|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: km/sLw1aRgIpDArK63X/Bu3rzTmuiUAT9JcYZYorRUMltzs0DP7M2znXLWuGcYZoUfdWihNnexMkpEyRBHLn14+ag2dgD++ciX+l9r5M4m94zuHWYIcGW1lsnvdgQCWou5l2sL8H88IIgrW/S3+qsH6WUn3kwJpZFb2t9IHDFEembXEr7/Ox2oUB7fXtQrN2KM/ComWTUY2aLztxnV4fD6emI9w9T8ohLh1N81p8qFON2z2aaO3QP1o56rHpuqp83/TapvJZsT5oRP8p1hJlojZAzUas5UglWWilqd6A/IBKj8FHlhkpdAqXmTpcEt16RP051rYgotGgDjqwcMppTzuAGJCa2ALFYKGb/H+lCe9FSgLM1zuLpSURiuHRrpgJVZ1/lMfnxJHsxYarFefa7Kx7vr0LbiwfhQAuZ6Or6PIADFDybz6kbddVeJbDe6TUwcj9vBKt2zMfKDBwOnMlhIMUQlR5SFrwJcr3+Z5pEOccF7UTHgzPlLW4LvmEnikXCXW0o5XrsgMWQ/BNXl6J9TbIOkhXRPPhOJEfcxzft/j8Dy/Q2C0XGOVwlb+52OYEZ23nESAxp1JcyqAgNmVSrU9gTEbt9qET62KY0WU57nbDPKU5wNsNbpM7I0sXl87Hu/sZp4CcjZAX04v6wYNpLjT6c1H5LUCxpb4d3/tgfxk= 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)(366016)(23010399003)(376014)(7416014)(1800799024)(56012099006)(4143699003)(11063799006)(10067099003)(22082099003)(18002099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YcCgtGKX3hsMgXPwzuXd50nZtBAtfsn4io+NOrdMttYGOP/YSEzk26zhQxtI?= =?us-ascii?Q?UGL7f2/OIAxYtuQmNANdNqItdQy7ll7GMu5JcAuPlMFWNkNh8EaCYMTH6o0s?= =?us-ascii?Q?iNBFupJldbhEK7bJLP8fH56qlAgyEGkIe6T6PDgYrP73obejiDWCb81gtVWs?= =?us-ascii?Q?0e8WrVLg344KvQZZntYCsf26Xbk8RJdK2SXr92l0R+TwCIPAsmlQ1wQAph8t?= =?us-ascii?Q?vux0Bd8tYCkZoxNJggf6ZDUMYXVKlRpLuLaOpXfyIC+uY5k/KJwpw8YVmCJl?= =?us-ascii?Q?L0gWlSSc/tYWkvcikEiHCsr0pbuNNRLBYkvCbY9r2udIweMDLAxRDjpPh6B1?= =?us-ascii?Q?t20VWXwHt5pmNSlmSmtvQDg53odUXHwHjLv2zD3bSQv44YEcNIxuGlkrTCk8?= =?us-ascii?Q?qXrLhejHLKltMgjy2M8BJXQVgIsbMGf0LmmKJNHbC2ZZGVpFG8kFEhqIKTt5?= =?us-ascii?Q?oXzEvK/D1xbwuNZ1u5sD8mTayzbD4bDmZCAS0LMh8ExmVylQ+ze8lIoOGPK2?= =?us-ascii?Q?BUBSQFrVxL3LeGrgiXq55AZk+dNmGU0/XHRCRo429/igxhYKgOaFWxq7Keke?= =?us-ascii?Q?CQF0CXJvjKC2n3PF7yeGWUbXpAB2o+2zN/IhNA55APKvv7Bm2ceXyKLj0sz0?= =?us-ascii?Q?IsvLWnbkNUWvWSv8hvGu0dKwshReemcnzqRBsOx7vgwrRq+R+n+8ZsXn7lDr?= =?us-ascii?Q?6oHRqUk4NRsRIWsfcvt3RNIqepaOS2nHLUmZs3XqF+C4g8jLDQcdgHwZiTV/?= =?us-ascii?Q?gdP1tDSsD2hd63+Tf4n1H5seUFc13CodpKk0G+9SCSIYN4pMyIftizRVeFst?= =?us-ascii?Q?A7Ks8+siDYrSpjd5n/G+w7mlCoM0GSEWALIhCOfLMlIUhW260Q7QiBnr/0Wc?= =?us-ascii?Q?fMXiJnMR5T2AvHltGUBrs6dO8l+T2Dx5i+Vp/dUQFN/POdbXNkYHFBrw7L8Z?= =?us-ascii?Q?yrIRSykXQlILIGaMaWUD0HmX/0r3wci1miPSh86Pw8h/faw1PqzzA5U2tIZ8?= =?us-ascii?Q?y0oG+1g4GJWUvnGXdUguGErOESM8d5i5hNatUqoBtdK22FRkI3SpPF49Pq5Y?= =?us-ascii?Q?xouKUrWvECB+VJJc31evHWX5nUNi9g7wHBlSyP1EnHFldVq3p+KY9P6jXtd0?= =?us-ascii?Q?7hfjBJktgr94lJxLXCgmqoJTX2DJQHEa7Ihp8ZT1/lWGbwFAKe6joW1md3zV?= =?us-ascii?Q?75VDDocVNnfBKWFTaBgyMiIhLizloMDSkMftNA1OfQtRsC+ebAWDaWM3Z+rg?= =?us-ascii?Q?HS8pZ3gC1OQBF8kJeonQAFLaAZpHBy/L2YwwQ+0Wgdft1ig0w5HH9IFqgGMI?= =?us-ascii?Q?9XwRcRYNpkxCnw5kfmuCtoe94q7EX9fGbl423O2cNXlLnfQ0drCG+HYUqpvt?= =?us-ascii?Q?fEFAonoyKWBkeOY6+UQobp6TuZrXtTOhz61T4ozwXdDFsZ+Dapms0bCiTgdU?= =?us-ascii?Q?IaHXsnLZ9cUH79mZCmx2nSYv5jobUxNZricJ2qm40DtBrR8m+rBc8aEn5n7E?= =?us-ascii?Q?a66I2bnN2z/3OeHRK3SF7hYpT2hQ3cCZDxjQW+xdNalSmdzDtNIPFUMQUPK3?= =?us-ascii?Q?BankZ5rLjm/GQiOZI/c08TBOMod9dyPc0wohr8Djx+7zfD6juIGQgjmpMh7i?= =?us-ascii?Q?QiS4iC6Koc7lS0is78rJqXFqlg/GMyJG2WbPVE4rP4Untyt5clgEHd57G4rt?= =?us-ascii?Q?Ez2QOTRTvOggMG+roa7IDKCwmKPea1yhZ4lJLzPc9+hGsf0YVvS4XbaiKrqx?= =?us-ascii?Q?1JO/n33mLA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 96cebd4b-8beb-4a8b-00e0-08df24a28d52 X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB6486.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2026 18:41:08.5901 (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: Y6u3PpNCAMpFmgRSZKmtKhUKhU9qHkNWzQpVL7OQAFGH4FPWaMsshXEwO1OdMFntXpJfvwNF0NxnIXg22bOa1g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5869 On Mon, Sep 14, 2026 at 11:13:31PM -0400, Yury Norov wrote: > DEFINE_RCU_SYNC() contains a statically initialized wait queue. SRCU > static definitions similarly rely on persistent lockdep keys and, in > Tiny SRCU, a statically initialized work item. > > Add ASSERT_STATIC_STORAGE() to DEFINE_RCU_SYNC(), both Tree SRCU > __DEFINE_SRCU() variants and Tiny SRCU's common DEFINE_SRCU() declaration. > This covers the non-static FAST and FAST_UPDOWN wrappers too. Tiny SRCU's > explicitly static declarations already enforce the required duration. > The existing per-CPU restrictions on Tree SRCU declarations still apply. > > Assisted-by: OpenAI Codex > Signed-off-by: Yury Norov All the changes make sense to me. I'm ok with carrying this for -rcu 7.5 unless you want to take it. Reviewed-by: Joel Fernandes thanks, Joel Fernandes > --- > include/linux/rcu_sync.h | 4 +++- > include/linux/srcutiny.h | 4 +++- > include/linux/srcutree.h | 7 +++++-- > 3 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/include/linux/rcu_sync.h b/include/linux/rcu_sync.h > index 3860dbb9107a..c10b6d30561a 100644 > --- a/include/linux/rcu_sync.h > +++ b/include/linux/rcu_sync.h > @@ -10,6 +10,7 @@ > #ifndef _LINUX_RCU_SYNC_H_ > #define _LINUX_RCU_SYNC_H_ > > +#include > #include > #include > > @@ -48,6 +49,7 @@ extern void rcu_sync_dtor(struct rcu_sync *); > } > > #define DEFINE_RCU_SYNC(name) \ > - struct rcu_sync name = __RCU_SYNC_INITIALIZER(name) > + struct rcu_sync name = __RCU_SYNC_INITIALIZER(name); \ > + ASSERT_STATIC_STORAGE(name) > > #endif /* _LINUX_RCU_SYNC_H_ */ > diff --git a/include/linux/srcutiny.h b/include/linux/srcutiny.h > index fbcf13bc12d1..40b592b4e2d8 100644 > --- a/include/linux/srcutiny.h > +++ b/include/linux/srcutiny.h > @@ -11,6 +11,7 @@ > #ifndef _LINUX_SRCU_TINY_H > #define _LINUX_SRCU_TINY_H > > +#include > #include > #include > > @@ -48,7 +49,8 @@ void srcu_tiny_irq_work(struct irq_work *irq_work); > * Tree SRCU, which needs some per-CPU data. > */ > #define DEFINE_SRCU(name) \ > - struct srcu_struct name = __SRCU_STRUCT_INIT(name, name, name, name) > + struct srcu_struct name = __SRCU_STRUCT_INIT(name, name, name, name); \ > + ASSERT_STATIC_STORAGE(name) > #define DEFINE_STATIC_SRCU(name) \ > static struct srcu_struct name = __SRCU_STRUCT_INIT(name, name, name, name) > #define DEFINE_SRCU_FAST(name) DEFINE_SRCU(name) > diff --git a/include/linux/srcutree.h b/include/linux/srcutree.h > index 75e54e4f963f..8bea8044230a 100644 > --- a/include/linux/srcutree.h > +++ b/include/linux/srcutree.h > @@ -11,6 +11,7 @@ > #ifndef _LINUX_SRCU_TREE_H > #define _LINUX_SRCU_TREE_H > > +#include > #include > #include > > @@ -217,13 +218,15 @@ struct srcu_struct { > fast); \ > extern struct srcu_struct * const __srcu_struct_##name; \ > struct srcu_struct * const __srcu_struct_##name \ > - __section("___srcu_struct_ptrs") = &name > + __section("___srcu_struct_ptrs") = &name; \ > + ASSERT_STATIC_STORAGE(name) > #else > # define __DEFINE_SRCU(name, fast, is_static) \ > static DEFINE_PER_CPU(struct srcu_data, name##_srcu_data); \ > static struct srcu_usage name##_srcu_usage = __SRCU_USAGE_INIT(name##_srcu_usage); \ > is_static struct srcu_struct name = \ > - __SRCU_STRUCT_INIT(name, name##_srcu_usage, name##_srcu_data, fast) > + __SRCU_STRUCT_INIT(name, name##_srcu_usage, name##_srcu_data, fast); \ > + ASSERT_STATIC_STORAGE(name) > #endif > #define DEFINE_SRCU(name) __DEFINE_SRCU(name, 0, /* not static */) > #define DEFINE_STATIC_SRCU(name) __DEFINE_SRCU(name, 0, static) > -- > 2.53.0 >