From nobody Sun May 24 19:33:37 2026 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010003.outbound.protection.outlook.com [40.93.198.3]) (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 4762F390C9A for ; Fri, 22 May 2026 05:19:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.3 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779427186; cv=fail; b=sBnOjN/J10GRfUy8sdnjni4PLDoYnBIAf+/O8U4QP3OZJqJY5n1uMPn+q5Tc5WSykAiUjptPPd/krWwFeZk/JjMOr0iQ36l+nNA2fTTgm2NX+ykVEHMkfBXCK9AQ5hdsXpcYRQPh/PFXtxbrEB+zRGEzzModsXY+fvHjdJCkaLI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779427186; c=relaxed/simple; bh=COJZKQC4/Gjw0Djl8F5+7kk4jwphry2btQ1mGoIWb9E=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=CA7CrIRJ9W0oAi93nUW4cUtKXarNJuMnnx2ueEzcpFUnEb3N+jW4yb1MzM9A+Qd+cpj5yHVi0WxgCKTgG2fiUSWnTgUJI7p3/6dpc0fGpiEJHZJdc1ln21eZYNeM9o6kEGtT629ZGPiivquB60QszMk5xEZf8Ew4p4nVbB5E3mU= 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=Clq0SMy8; arc=fail smtp.client-ip=40.93.198.3 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="Clq0SMy8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=S4VFoSp3yTPbxvqV6KtYZExcQP78w1nDJP7ioc81RyVhQc2psepz0D2VfLJiOPnp+d8kpmEI5w9uEaFqApdBmkoWV0SXdSRiVn4WQwTiaTX5KqA6SgVa0S6Ltr5U5BE46KkX6RhiNxekI/9+ED7pR8NyawJUrRgtGqixUEg8e8rawJwF3znAacMRfudmswWD5vusYXqdyGK8kza+q2oBW67w+PpkzsiWnJXGQRkiPBl9Hx7wv0q4FUV8IGo1NLapiDQexwS59AC8sxFoLR5fWLkHm0XI1mFSnNA/VJM9SKCT4o+jT1p291tKlZLKYZWyd5TAXj7OVSNbIgtLJc425w== 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=c3/TnFj/Napyr+l3gGONW9l+msV/H8qLVP0xn7OSiJk=; b=Y2bceZNgo8FJ+Wm5yK+bl3+BMMhymavEr9YuxiEO1bt94o5pVd3vffkJRPtbEQzoln8IJVW41RlPwSTmEtz8z5yZ3U+rXxspDY7umrQbVOHiwd7Db2RA7qgmIS6yhHS7HlhDZ8DkyLnsW03cGZ6l1nRI8aKG8O0J3W1KbD9atzk2AAGSX6TtsQVdoS3ZOFi7NBlNkrFCODHpTyOFSyseG5kCo5FRebC3TMwzQeiYNGpxq8smhKtCvn5jOJysCQrLU3UBpxrDVuegWuf90A733OlD11xHB64teIej28CRer5gqre/eBvNpWNRodQ9XQ8RcIXKWqWYQ8izG0YYuGFZqQ== 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=c3/TnFj/Napyr+l3gGONW9l+msV/H8qLVP0xn7OSiJk=; b=Clq0SMy8oHWmmEn6Am1BrfyRKEdrRY+8TZ84MLeDf8yEooOeM8YZMrTOs1GIZgFklqfWioloY1qm4IkvjqX+HGAiN/SdNfOGAiyjkxgLZFynUgz2j2sPPLUPEt2rBp4W2Nj6i1IoWweQ8V+JIJXdR2RKwK6brmgSnlVF9pG5dtHzCjvNRIFKizOfLHtfPJJGkInFh4MawMrSkYBSQujMNcv4Q1fRbxrIvjY7H7RFEyBZmWU2Ft/kNSrNi5ZG9NBNWZRH3BBRUoiDyrn9p0e5wsnkpOzvIlkFVynqdoCN3OMJPz16y7N18iWb9sBR6xCxeUXb2vOclVVSjO8guYW39A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM6PR12MB4827.namprd12.prod.outlook.com (2603:10b6:5:1d6::14) by DS0PR12MB8480.namprd12.prod.outlook.com (2603:10b6:8:159::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Fri, 22 May 2026 05:19:35 +0000 Received: from DM6PR12MB4827.namprd12.prod.outlook.com ([fe80::6261:3040:864b:159c]) by DM6PR12MB4827.namprd12.prod.outlook.com ([fe80::6261:3040:864b:159c%4]) with mapi id 15.21.0048.016; Fri, 22 May 2026 05:19:35 +0000 From: Andrea Righi To: Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot Cc: Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Marek Szyprowski , linux-kernel@vger.kernel.org Subject: [PATCH v2] sched/fair: Restore RCU read lock in set_cpu_sd_state_{busy,idle}() Date: Fri, 22 May 2026 07:19:23 +0200 Message-ID: <20260522051923.1840812-1-arighi@nvidia.com> X-Mailer: git-send-email 2.54.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MI1P293CA0022.ITAP293.PROD.OUTLOOK.COM (2603:10a6:290:3::19) To DM6PR12MB4827.namprd12.prod.outlook.com (2603:10b6:5:1d6::14) 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: DM6PR12MB4827:EE_|DS0PR12MB8480:EE_ X-MS-Office365-Filtering-Correlation-Id: 323e94de-d46b-46d9-ec6d-08deb7c1b6c0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|18002099003|56012099003|6133799003|11063799006|5023799004; X-Microsoft-Antispam-Message-Info: l+E0Y1xqiXcEVJn1oQ8yoJZohmckLxbOtd4YCGm+V55Lt5ow6+Ck7w+QoWHLbK5tlVGJMKIzL6q/rS48nqgpu/0N/9r+1zRz3bqiZfIiI19hE3n8m+3s34OlhaWiQMLEVAyOGEjb5/aaYJXSIoUsiPo+beTwb7HqOkgerpMX8w/hKFntbm7AdGU7AIoAEvY1jo9to4LtJtgqKS0htj53cVgLmdeiDyDcETQozEDfyoKkOzY5CnqPxGRyRbdkAkLSYviSYKPKzauqvu70BLjVRC5B8kWREdkt0LH14T2nFk1UrKn2/J7xvDH2nbn8R0zhdFOVTbDco9t89GR5Vl+aOV/y75CRsA91m2HAgrDngpTd+6jH7EuBjcs+/ud0lRfdGPiqGd917U4cuccWvglKDoRhs592rHK5WPZGUm4j1jiWLQpVwcn95CJbTyAQt+2nY6nyWZ2QXXb5NbIJ7BBe2nnOaFICWIEqwBtNlycshLv3fDKxYtJCpARUpPvb+0njDexIhSIX7ViQMJHG2LGWh09rvCIC6ky4wR3CpIpUwIOdwgi/bvYY5G7deSojL32gohh9KG0AiCbZbPILwK3m0WcfvloI6nKd8ts8ZxA0+wNN16CoAxbSoaf21nhupOJbEhs4Lr04+TNajeUPKNndIlfatlGUtk5zHp3ViTGP8NruA27xXLC7RDnB7RbE7lai X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB4827.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(18002099003)(56012099003)(6133799003)(11063799006)(5023799004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ti4w7OBo1N1rx9s7IdEOZnknlCJzsAa45E2pB/Oi6br4QZEJUG2KohvvjxWF?= =?us-ascii?Q?LPsgkZraU4HSEKeRJSfa9Y4AYP4XqqlcI+1msQVuULSKqnWNwOjwtXv5rv6g?= =?us-ascii?Q?s41tM2H3MI8E4LWN4OuOyFd52SqcwXPTHwu/HuMy05xUyheVab/yIaZ/yE5Z?= =?us-ascii?Q?CD3JKDQ/3mADC/tsGOYkmidkyEZhCz1YLrsAKG9SxE8FY9TD/tY1TFtVHnfs?= =?us-ascii?Q?1zP80XbvO1t4te+uXrO+520u3rdycGOALAdhcOIR7ZngtcFwpcSPng742EiK?= =?us-ascii?Q?S9/ezxhLJcISdqTJ2HE2UI+/rlI3F8J4kOyYqTv87FNAuNhVm5NtsbwXodde?= =?us-ascii?Q?bTpfKE59dGsTzITy7bU0dWIkPViK71Zk1zlHyblRuOit+MeU7WrjPrAxg4B2?= =?us-ascii?Q?Zz08qxE7yeTorkQliBeQPhqQjB2kFSG9v+HHeXNN7+Nfg8ai3BfY5HBJbt8E?= =?us-ascii?Q?DBp4RhpiKyfSrecpFblUht8akrENCow3873JEQR/ssaLTaVjIz9AqW73kvBb?= =?us-ascii?Q?mJiVz2fTW+mpeOncrEZJQ1HvyEi6tWH3KcxaOFRIJQAtHY+CHNW+J/Jkh2Hm?= =?us-ascii?Q?LrhEinl+fByLOGYYR6omqgRhCWxE8zOFWLm9k86BkM/aQtvEuNX5ZPhaW27k?= =?us-ascii?Q?ob63oCBR6qczv9seM+AC/QRRL42m0hz3zAFHkhL7Yp5ww0O4rOkN8iz276to?= =?us-ascii?Q?KCci3yhFD0LY1lp9KSMWGNjBRJPmzNwmMYLmMuUj7Dc2CpUBMF8Zej9FnSKr?= =?us-ascii?Q?1kq3XUAHMjP8Ncob+WVbyHoF74+2gZx1KSlB/1J0QOWlZtWnPErtPvDacshY?= =?us-ascii?Q?vKlNq+99UDNKI3v+Kn9DElJ1/k1sImSgMvPFCYh3ZvlQHQkrjL0rnAsn9R26?= =?us-ascii?Q?hPMLkyJk0C0sQHgC5TracVJYGC1y+iC5N8qGcakMFgTt97pQAgIVsoHHOUrh?= =?us-ascii?Q?T/v6evjIwozxhKV2MenbXRwgmph6fMESoslFTVBJ0mxM/aMxsFgH3LjUX1Po?= =?us-ascii?Q?7tq7ktPRNymoHD5FONZdQB0508JXaacAZ98hF4bAIqsrwLFozNIRHNaqZP8n?= =?us-ascii?Q?1sV2sx//gDLzgw+QYu7u0EZsmoZHyOmqpkXVcI2KVvnjdPjZuYHz49rAjxj1?= =?us-ascii?Q?taa7mPS4hFRdeLiW3ltqe1dHpKYifj4552if0qjDbDTS/8xjpByKuEM02K5b?= =?us-ascii?Q?0qiBJDVx2OyWXQNPPXZg8vsXTwmLvxP5mZy+lR7fhkJqIZ4vNQ6VTK6ApNlg?= =?us-ascii?Q?48NfODCf6j/2ytvIww3VEfQq2FVTEwqwEbl0k02v7cGCifskfWs+Kh63s4WP?= =?us-ascii?Q?MbKzPeGne8Rdvi4tuiyZR4DJ2L8X8t6j9NuK/5vi8bAMEtbMWY6aVZwcZfho?= =?us-ascii?Q?DPhXiSn2zjkxynNb5cHy4gbRPDL0ZmiXTxd6GlzyoMhyn4HVOHQ38yNQSn/a?= =?us-ascii?Q?IuCeLIqhpjF8MBpm7Ll8kTqJyQX92828q9ZW55IJtoyOa6uh2puzG4Y1rXpi?= =?us-ascii?Q?kwCGSnBtT9SW2P93zPgjyu2Kriv8P7F/EYVNZ8tPkNQW5oWgDBWtphziL1JY?= =?us-ascii?Q?hTXdI1NpLAEeaZXCXTcA+K0k+fxKku0epMXQzu1dFVK9Ho2KLdjGWmljTEQu?= =?us-ascii?Q?yuPsM3vQRltEwtwH6wmEbNxfFzQyeybRwShtI93SnSWsqaAXa/t1/HTMla9m?= =?us-ascii?Q?LrESkqsj2xPmc30mGPAEBupzhwvhZdGfTDMdo3WrgNZeuA+kMpcAYuWU8/nu?= =?us-ascii?Q?NG2GnIXQ+w=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 323e94de-d46b-46d9-ec6d-08deb7c1b6c0 X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB4827.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2026 05:19:35.6905 (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: QUUm6uDiew12sMcLszYXcLUB8OfYGbaYIWdbEFoKKPAnA3dq1M6m106lR3xuvUlCKoDq60ln9BqtT4kH+XyfHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8480 Content-Type: text/plain; charset="utf-8" Commit c9d93a73ce87 ("sched/fair: Drop redundant RCU read lock in NOHZ kick path") removed the rcu_read_lock()/unlock() pair from set_cpu_sd_state_busy() and set_cpu_sd_state_idle() on the assumption that all callers run in a safe context for rcu_dereference_all(): IRQs disabled or cpus_write_lock() held. That assumption is wrong for the CPU hotplug teardown path. When CPUs are taken offline, set_cpu_sd_state_busy() is invoked via: cpuhp/N kthread cpuhp_thread_fun() cpuhp_invoke_callback() sched_cpu_deactivate() nohz_balance_exit_idle() set_cpu_sd_state_busy() rcu_dereference_all(per_cpu(sd_llc, cpu)) The cpuhp kthread holds cpu_hotplug_lock (percpu-rwsem) but runs with preemption and IRQs enabled. As a result, lockdep correctly reports a suspicious RCU usage on CPU offline, e.g.: # echo 0 > /sys/devices/system/cpu/cpu1/online =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D WARNING: suspicious RCU usage ----------------------------- kernel/sched/fair.c:12793 suspicious rcu_dereference_check() usage! ... 2 locks held by cpuhp/1/20: #0: (cpu_hotplug_lock){++++}-{0:0}, at: cpuhp_thread_fun+0x42/0x1ae #1: (cpuhp_state-down){+.+.}-{0:0}, at: cpuhp_thread_fun+0x72/0x1ae Call Trace: lockdep_rcu_suspicious nohz_balance_exit_idle sched_cpu_deactivate cpuhp_invoke_callback cpuhp_thread_fun smpboot_thread_fn Restore RCU locking in both helpers, nohz_balancer_kick() is left as is, since its IRQ-disabled context is genuinely sufficient. Fixes: c9d93a73ce87 ("sched/fair: Drop redundant RCU read lock in NOHZ kick= path") Reported-by: Marek Szyprowski Closes: https://lore.kernel.org/all/38fe0a1d-1a48-435a-910a-c278024d9ac9@sa= msung.com/ Reviewed-by: K Prateek Nayak Signed-off-by: Andrea Righi --- Changes in v2: - Use guard(rcu)() instead of rcu_read_lock/unlock() (Prateek) - Link to v1: https://lore.kernel.org/all/20260521205115.1689545-1-arighi@= nvidia.com kernel/sched/fair.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index aac24cfddecdf..49ec9208bb6c4 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -14070,6 +14070,8 @@ static void nohz_balancer_kick(struct rq *rq) static void set_cpu_sd_state_busy(int cpu) { struct sched_domain *sd; + + guard(rcu)(); sd =3D rcu_dereference_all(per_cpu(sd_llc, cpu)); =20 /* @@ -14099,6 +14101,8 @@ void nohz_balance_exit_idle(struct rq *rq) static void set_cpu_sd_state_idle(int cpu) { struct sched_domain *sd; + + guard(rcu)(); sd =3D rcu_dereference_all(per_cpu(sd_llc, cpu)); =20 /* See set_cpu_sd_state_busy(): nohz_idle is only used with sd->shared. */ base-commit: b07a332d9cbbd9cc9cfa923a21bd061cfb69bea5 --=20 2.54.0