From nobody Fri Dec 19 13:07:33 2025 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012013.outbound.protection.outlook.com [40.107.209.13]) (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 2B6FE3101C7 for ; Mon, 8 Dec 2025 09:28:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.13 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765186100; cv=fail; b=QM+KsU/+3k33NmJP5dKOumROujvg4glO3HlPEeA9QB+Wtx2SMqd8HgG4Q2RsYImM2uuaWO0E0/Rt3lqVk7NOEc683egq9+D2+FsMI3u7BfOAj+pdGkkeyP0fNJrXNjyBfsL7tlUr+VkwYlTIowQRnYKKn4gi1d7agdIhEWlkjus= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765186100; c=relaxed/simple; bh=z4N1TAq6+pHp5MrY2Cu7MFKJYphT+vF5nsqAsMNuMBw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=bn2P/KbZVg4uTq6BK2ZEQER6p1TIpSpT3uMnz7AEeYAHw/csUFcEjKTqwjON98OYL2k4NowefIFBFCHDUzB1iHBIXZn2IMMbizyEPv71T4OR9ymAMb8+XBg018Z4Amxp60oQP0iW6NuvguKqsa1vNVKyzJ6NkSuJHybQV5p2kk4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=VxYJcmtq; arc=fail smtp.client-ip=40.107.209.13 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="VxYJcmtq" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KPVQ/hCVX3ZnE9/hLw+ZpnGX/Cjg09TrMFaAvlh5gW5/dDtSYWc0D+EM8mNySQaiK4g4DqFGlK8DD4w3VqXim4fA6LtMdVT8SJNdOVtI19clEviWaqDh1RYJaCQU/dL8jSi8Ks/NQKgt5f0i42cbdInTGNP5Y0WPKwb56KkrxzLgFNt2Q2/+vJ7zTErwHBbrvrF1Ko3jm8lFCbOJpfgOjhsqGx85XeuLxtRNevp7dBlNXON7HK5ll/M9hXPDGwoThdzGUeXh8YgeKcYbu5udiv9HmGVkG8WE4TuIujcoutny2ZxK8yMk/J6zQHjniUumUdA8a0A120hMrZEMlm4fYg== 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=S+Rz6peDyP+Nl8q6hlYyFfV4Xoh9oxAwWbLuE1Sb13I=; b=f6GdLopIReoCL+0RO6I/PXICnANY3RdXhKXJZrHSgDhVNLGraTkaZ/5nuQ3pSkUlroAUTLgX0mSHfUjHkCUsoZftKYpz7UNO6SkWWW6uiC6CLkMpcCErLIN5lsIIcRoPzYTpQYEXClW0au089IrIXZCZHBzv0rE2nuP6XU/qhtFSzxq0tB2xB6tIyuFibZhs8xAcuzz/z/XBPW7Hc4MG6IIRuDhT/HAtMAv0+fThErgSGGxwJeq5bUwd/Ub2FVHPL4+3f0Zuw8pMUYQDWCfCBPoTGq2gKpd9afggMuRn94Y86jSjo8ZPxgCm3/Q8gDF+HeUkDzXMPPVnB2OjYLw8fQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=redhat.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=S+Rz6peDyP+Nl8q6hlYyFfV4Xoh9oxAwWbLuE1Sb13I=; b=VxYJcmtqwyDB0kjgpe7KuXgRjPaj6IZO3LhRiFpchWHlgZLqMIh+qLFdRXUYFoSl9DSpxO7BVvyC/WwxIrrZwUaRODj2SgQDHpnP8zdBIvoPR9TNBil3iAXlvrwzc+SBIJO25fG1vgO0Q6XTID9P5KPVgHhdFEE8xurOWdvwmRg= Received: from MW4PR03CA0162.namprd03.prod.outlook.com (2603:10b6:303:8d::17) by CY5PR12MB6456.namprd12.prod.outlook.com (2603:10b6:930:34::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.14; Mon, 8 Dec 2025 09:28:15 +0000 Received: from CO1PEPF000042AD.namprd03.prod.outlook.com (2603:10b6:303:8d:cafe::7c) by MW4PR03CA0162.outlook.office365.com (2603:10b6:303:8d::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9388.14 via Frontend Transport; Mon, 8 Dec 2025 09:28:15 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by CO1PEPF000042AD.mail.protection.outlook.com (10.167.243.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.8 via Frontend Transport; Mon, 8 Dec 2025 09:28:15 +0000 Received: from BLRKPRNAYAK.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 8 Dec 2025 03:28:09 -0600 From: K Prateek Nayak To: Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot , Anna-Maria Behnsen , Frederic Weisbecker , Thomas Gleixner CC: , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , "Gautham R. Shenoy" , Swapnil Sapkal , Shrikanth Hegde , Chen Yu Subject: [RESEND RFC PATCH v2 02/29] sched/fair: Use rq->nohz_tick_stopped in update_nohz_stats() Date: Mon, 8 Dec 2025 09:26:48 +0000 Message-ID: <20251208092744.32737-2-kprateek.nayak@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251208083602.31898-1-kprateek.nayak@amd.com> References: <20251208083602.31898-1-kprateek.nayak@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: satlexmb07.amd.com (10.181.42.216) To satlexmb07.amd.com (10.181.42.216) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000042AD:EE_|CY5PR12MB6456:EE_ X-MS-Office365-Filtering-Correlation-Id: 2ced01c2-1cf3-40a1-a6a9-08de363c1d76 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ft69ZDw+R2GbZK3LT5gfQQc/5Z3tsJQOmNgUn5PJ/1delS8aYOBSkOtQ4/aN?= =?us-ascii?Q?Suv3b1GP6zIsNY2nD/VG3Fif+of95/KopwVHIhjDhwpkp/0itEWHSXSb+FIl?= =?us-ascii?Q?7ALoSZ7qCysyBV5qmVj7W1zKBGvAINw6ULj1RWu29qGyTyt1e3yPT3gMHSpf?= =?us-ascii?Q?BufgUZ2YF9IgwSl7fdXnUbPTRaIYnmblj8mX8fv/RKa9YW58YMH7ZDLmFI0U?= =?us-ascii?Q?lblPThtnh9A0c2v0WD9NEQjtgGtcapeScXHpvbTt+2TFnAijUrpycBh8fcFU?= =?us-ascii?Q?AvkFhZcMKl2aU/QzzFdtlhrT6j7rRBoYP9cLUQWZaazgYLa2jlo+k5FH6LCZ?= =?us-ascii?Q?BmYAWPmULX/oNljJGAy64HHba0ff/phNtLhG5X+4XBMig1f43MljSBMwIAAm?= =?us-ascii?Q?ItaYBDTGwd8nn+eA34rsFxXS1Y7er7B/O3OJ9QCtKNlZySdXwHcbWt8Jdi65?= =?us-ascii?Q?H/2rpsbHC7wRrfcF1gojCkxpgFKzcpZdRL+NsDotKdHO6CwkuacvQlnrZ8PE?= =?us-ascii?Q?pqHm8t+lUriATelcTYRwrulRUqcVlnDC71/m8UwcQyi8u7IwwlxRjayCw3Zh?= =?us-ascii?Q?5Mf8q0alAsQ2EWhDa25q2k1jzC5TMQR1bI55u/yajAJN3M7M9GVDhh8nqBoT?= =?us-ascii?Q?BTkSSMaAeRcvOqPzzwXU4VV15IXdyjwMLXwlLWQNbZbJn4eIWgfiaQDUHgfq?= =?us-ascii?Q?HwHE+JorUhgpm8Mh767qIt2d1IyqKHcoFYk/+H7mhF10N6BlIy2BXajAPcjX?= =?us-ascii?Q?iy0akpr4O3dD3IL0HR0H9ApdbYhGRhwKWFbJf/oGC7gwjG2tQpjVHE5nWHMh?= =?us-ascii?Q?Gd7MCJNDZleyXEKTL7q2K3A+rcX9wXyUTiwKCtsxYDLjLkZkxJYD3lR2TYxQ?= =?us-ascii?Q?CaHw5jiu5gQ967647YV0szPaoiyy8av5CmCyrYm0wb93oFSFKW43+tBFF0ss?= =?us-ascii?Q?aMq4p9mx1dbL9WtqJBdBA+J7HCbV61tMrWEue3KaVtEjw+g5XDYRsWPFOjPW?= =?us-ascii?Q?dUnDAC+pDvLNG3ZEYjP53OKW6a4whnvBsOV9nmcMAbC8QXOfdLb4jNUWsZDb?= =?us-ascii?Q?4hcLPZhc4Rkbkh0apQs1XBmBSUsRixjq8vlZn0rsA3tlzjnbCuiauVI5+9mL?= =?us-ascii?Q?LibHNmEZJEZMJVZcer8Ly17ypo9DHW9tea/NKjCH5fthczDlfPViFrzmFLpA?= =?us-ascii?Q?/MulvFrVACzjkkJvuYApjccgaI+Vrx2V5jBc89MNFltfeq/0OFFbtUgbuUnA?= =?us-ascii?Q?Da8dyWHegYx8OgKVvnW4FURnF6k4rMkIJ6yRJvKOeDPbeZLDnZTRYFpKMcGO?= =?us-ascii?Q?SOmhCCrpuXaEm0pfRJxujTsTxID296DZi+centTIvllMZ+9Kahp2+gcZ0cWj?= =?us-ascii?Q?V12BPt0aGagV9N2LGuEWeC3hNXZ5SpYs+LxHwZaZsr8PLXFuKpBXnECD1Qlb?= =?us-ascii?Q?wJ8jfQeo/eLHR8OtdjnRQCgeZxV73E0r8Zd+b1NGML02Ut1a4PBS9LVs/fZo?= =?us-ascii?Q?fJbvXWfa5rPSTI8sT7ApB+EvUiYNPLPu7Cxvtg8hmFPiAHXEFrQWvvkJ7ZH2?= =?us-ascii?Q?kxcQYiTtYjgNyqrjI3Y=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Dec 2025 09:28:15.2099 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2ced01c2-1cf3-40a1-a6a9-08de363c1d76 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000042AD.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6456 Content-Type: text/plain; charset="utf-8" "rq->nohz_tick_stopped" always follows the state of CPU on "nohz.idle_cpus_mask". Use the local rq indicator instead of checking for the CPU on the "idle_cpus_mask". Use READ_ONCE() and WRITE_ONCE() for "rq->nohz_tick_stopped" to ensure update_nohz_stats() always sees the latest value. This cleanup is necessary to avoid the number of references to the global "nohz.idle_cpus_mask" to ease the transition to a distributed nohz idle tracking strategy. No functional changes intended. Reviewed-by: Gautham R. Shenoy Signed-off-by: K Prateek Nayak --- kernel/sched/fair.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 8a5168284eaf..b135c9ce21fe 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -12557,10 +12557,10 @@ void nohz_balance_exit_idle(struct rq *rq) { WARN_ON_ONCE(rq !=3D this_rq()); =20 - if (likely(!rq->nohz_tick_stopped)) + if (likely(!READ_ONCE(rq->nohz_tick_stopped))) return; =20 - rq->nohz_tick_stopped =3D 0; + WRITE_ONCE(rq->nohz_tick_stopped, 0); cpumask_clear_cpu(rq->cpu, nohz.idle_cpus_mask); atomic_dec(&nohz.nr_cpus); =20 @@ -12608,14 +12608,14 @@ void nohz_balance_enter_idle(int cpu) * *_avg. The CPU is already part of nohz.idle_cpus_mask so the clear * of nohz.has_blocked can only happen after checking the new load */ - if (rq->nohz_tick_stopped) + if (READ_ONCE(rq->nohz_tick_stopped)) goto out; =20 /* If we're a completely isolated CPU, we don't play: */ if (on_null_domain(rq)) return; =20 - rq->nohz_tick_stopped =3D 1; + WRITE_ONCE(rq->nohz_tick_stopped, 1); =20 cpumask_set_cpu(cpu, nohz.idle_cpus_mask); atomic_inc(&nohz.nr_cpus); @@ -12645,7 +12645,7 @@ static bool update_nohz_stats(struct rq *rq) if (!rq->has_blocked_load) return false; =20 - if (!cpumask_test_cpu(cpu, nohz.idle_cpus_mask)) + if (!READ_ONCE(rq->nohz_tick_stopped)) return false; =20 if (!time_after(jiffies, READ_ONCE(rq->last_blocked_load_update_tick))) --=20 2.43.0