From nobody Mon Feb 9 19:53:38 2026 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2053.outbound.protection.outlook.com [40.107.94.53]) (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 6C31014B962 for ; Wed, 18 Dec 2024 04:40:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734496845; cv=fail; b=rugFVeXh/BjmipN6Pul0cRcvS5MhbsZ6OcrxKZx3ykls5Hrz2NgXtnvI2K+omW59XInZ0OlmVkhqUZo5zNrdxtTnDrTpk935RyepOOJnd+fSP7Qx2aIvGMOQf5xSNSCTYhgsYkUx5FJLMlV7I+lzKBenPDCMGDhhWcurCuXiMeM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734496845; c=relaxed/simple; bh=KEfpLtt0AZdnk5uBtb31v4S2wpzIDW1fEi9Srh2KIp8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=t1m+fEfikgkRuwFCdfJP0RO+xY/vakK1Hy/3hl/n0f9RwviYKZ9mcdH6TSv+H2KTm/6m9bvKDXLDM1G52ow0+blrGofF/HnJ99fqk+zgeUAOAmNSWJpVXIzfb+KxbfGp4rS+G9sxpEaO5PunYz51oUWkzp4ybMbBVQdfnFxWioE= 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=rvA8Wl2A; arc=fail smtp.client-ip=40.107.94.53 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="rvA8Wl2A" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NgfDCHCCi6sb7jHsU0OIqVElEI3deZKhrQZILmWsneQetB8oPRpfa26CrkO3F3MXrvG6q6lC6/TcvrdfFU145Xq3+hjxI3dGP2+bMzT7jMgPJUAYrNWAfb/tEDNvQ8rye6/5UcC6/9fVFxWndSrNFFN6EfDcV5paP6hYooQQgm9Lb+Dr0ZYnczXqKxCjkG9za58Wh6OiSjxzM0Et/rS65FxysnhwfkjyeGjqF/GataIN3Zj9Dn/hiuAkf7ch+ek8qBXchqZVa6SjdV2253WTbzxYCDkd+59XaWSHChPLRKA9H0bG2FzizgaZOGEEDbR/sRPOC9F2uQFDTxgwb3HEhA== 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=fTxYciq7OpZ7H495DhLmABcu8CCSXEOC8WVK9yLOSJc=; b=hXCqE1ScRulzyPr7PZS6GkMKF/mbIQbqp4TkvyYyMTtaHx/18unYQbHWwx+btOJOuMQQfhLaNvnf870MfrOalAybV5xGMGbdEAukWJgPHDG+UeBBJ5bLKfcsvSux5Z66JGjgNJylu/meLvEs2PFL6oQdczghlAlF78RH3YKWG/SCmTm4/YJHHayKl1RBo8DYxIdbTx98wfIIqPPpUdo67zyofdNXVROWq63js0zNbPXCU53TMHxLPRXUD+Fw9RqVLUYch2fn52xrrbompb8bzCWkzncTab8GCAvEbPjYoSDTNV2QodYNY1j3SDk/UQXa7X6i/i8lo0XJJbs97mceOQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=infradead.org 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=fTxYciq7OpZ7H495DhLmABcu8CCSXEOC8WVK9yLOSJc=; b=rvA8Wl2AN23JJZVJyXyjBbEWfVIg3rP/cUb4R7UUdlgeNkrqAanGsnARedBF9YUncFYAUyL3CoZQsjR9L1nbz3vOnE2NwwAgZaP8Pg3d13AuE7vvSivHmgWVRYat2mLBz0I1kTxsV+IJmxnKbpfO4e+H++Y4EuaSCxI60pWXwzA= Received: from SN6PR16CA0049.namprd16.prod.outlook.com (2603:10b6:805:ca::26) by PH7PR12MB6634.namprd12.prod.outlook.com (2603:10b6:510:211::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8251.21; Wed, 18 Dec 2024 04:40:37 +0000 Received: from SA2PEPF00001509.namprd04.prod.outlook.com (2603:10b6:805:ca:cafe::e0) by SN6PR16CA0049.outlook.office365.com (2603:10b6:805:ca::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8251.22 via Frontend Transport; Wed, 18 Dec 2024 04:40:37 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SA2PEPF00001509.mail.protection.outlook.com (10.167.242.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8251.15 via Frontend Transport; Wed, 18 Dec 2024 04:40:36 +0000 Received: from tapi.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 17 Dec 2024 22:40:21 -0600 From: Swapnil Sapkal To: , , , , CC: , , , , , , , , , , , , , , , Swapnil Sapkal Subject: [PATCH 2/6] sched/fair: Cleanup in migrate_degrades_locality() to improve readability Date: Wed, 18 Dec 2024 04:36:25 +0000 Message-ID: <20241218043629.1142651-3-swapnil.sapkal@amd.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20241218043629.1142651-1-swapnil.sapkal@amd.com> References: <20241218043629.1142651-1-swapnil.sapkal@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: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF00001509:EE_|PH7PR12MB6634:EE_ X-MS-Office365-Filtering-Correlation-Id: a726182b-3d0a-4914-01fb-08dd1f1e1e11 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|7416014|82310400026|36860700013|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ZQXXhTXPkkDDB6cmR9Fd9+cA6Bk/+IhNmbLnM+BwnLPliCuuGzamMS3WoPHo?= =?us-ascii?Q?7TLtISt+Sv1Lf7cfzBq/LrXpPddaeB9QDG/bF4+RavLhegUdhAPmhKxAwp/B?= =?us-ascii?Q?Vx1V2YtUvQiC2/iyVYW1QegP60TI3WZFmNjKga+zwmEwG+A83PZerboBuC3V?= =?us-ascii?Q?AP0imv3ju1HaA8WQef5/uHNcjNBYfGZD8wyd8XNAOm7CcY7xMKaKgG7HK1pw?= =?us-ascii?Q?+EGKBtPmFcJzfGMWHF8T5neJ4qHM7ojkekgHzNgZYcAqUvJK35XU8O3wuEnV?= =?us-ascii?Q?KljHZllsdlaUwGZQ4FyAjWGZwe+dA8+aBAcTZJGKAF9bQ2BVQpGWeA+xHK0r?= =?us-ascii?Q?w9fcdN1Sn9PRFSnaxa8NS065pEB1eKlE40soMPam6aIuL0EOQBGbtyfJR5GG?= =?us-ascii?Q?a/G88WKrNLwtGtNvKnX/IcZuN7PuDZhhO+z2lf84UBrmGGVkogFAM3jiw4lJ?= =?us-ascii?Q?VwlclLL6EqCTOd9A7ZOzNF79nqzzE8VuS0RPEnetObGLODk8wjpBlIxnK5kR?= =?us-ascii?Q?csVM78aeO65PmaabgcoyKWCqLIKGKJtDWBZdnmVXzOCWfqLisGay2DEC6iB2?= =?us-ascii?Q?UJFvqDCcFpb+DK/7EM8vs7xCjFLgsyUErHi8ofqIeHwYEiwP7MRTxY2IuZH2?= =?us-ascii?Q?gEtY9PoT7b72e9sh/lwGl6FbYyteaViTge0ek9v7u+uEXp+PwCHR7e8CLOwa?= =?us-ascii?Q?Hpz+0mcsZY3JKfYTJRmTm2GesSjxPXKXU1WSABdDyIzFrpibxp+DTTDwNkKS?= =?us-ascii?Q?LB22+VYxkMUOTQHTGP7EXGwCBGEWS95N6o2M4HGDIjeizd7+7nwU7ReENPws?= =?us-ascii?Q?iAIJIvxYnErg0AHPvtwf6BdZn7JbHPUxc8bYRezbEkLUMsiYQXryniiyqLnM?= =?us-ascii?Q?WlGT8ioK+Qt7fUOVqASZiuvD/1SsntMKtqkeVEIgP/WrDTthyAXJAW5H7zDf?= =?us-ascii?Q?T8jmVQkxRVxpFwqh8DTXvZua7T+kmBLpS7Gd8NDd+cL09SRg6m01NnSFPpOt?= =?us-ascii?Q?MKUpdxBRe45wPvzmKZ8btTQDv+Rf/k7yGrKjn+39adNoy7IFwWoP0N3yWw50?= =?us-ascii?Q?oDNUbDproB25s55M42ZBwbS0SPytZxorMO6QKGqEqVCnejKRJXpYPZLn+k6z?= =?us-ascii?Q?WtNGcAjfZhSxfAJpLhNDJCggQjJv9NIX2y2e4cLKwNfDkNGQJJybx5vfgdXQ?= =?us-ascii?Q?P6gqZmxxKVi5TDucnrzsOghtbPy3OHGLOdlFE3Q7z/EWCSe5hpiMNh17et1b?= =?us-ascii?Q?TiywFpzU807mZhysvBcXVaCkpal5RBF0NRPCGlxVBkUUks5MPo2Lx5veWgcJ?= =?us-ascii?Q?8aPgYM4HBMsv+rr5HGgc7j4ZUfpMP5p8UKnIAhlrBO8/HzYDpbxYPPeeCVyq?= =?us-ascii?Q?Z8rqXUI2Fjk3K6jnJ2mgZEAy0CfdrCW2JLYaU6htINWrzVPHX8nY362q1tfP?= =?us-ascii?Q?331t1Tbwhsiax2RWmEYm/6fnoVkZo1S8M5iO4siieag2nBnJ/Uq2WNUOym77?= =?us-ascii?Q?jxT/YVOzRiFYZVg=3D?= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(82310400026)(36860700013)(7053199007);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2024 04:40:36.9608 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a726182b-3d0a-4914-01fb-08dd1f1e1e11 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF00001509.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6634 Content-Type: text/plain; charset="utf-8" From: Peter Zijlstra migrate_degrade_locality() would return {1, 0, -1} respectively to indicate that migration would degrade-locality, would improve locality, would be ambivalent to locality improvements. This patch improves readability by changing the return value to mean: * Any positive value improves locality * 0 migration doesn't affect locality * Any negative value degrades locality. Link: https://lore.kernel.org/all/20230619094529.GL4253@hirez.programming.k= icks-ass.net/ [Swapnil: Fixed comments around code and wrote commit log] Not-yet-signed-off-by: Peter Zijlstra Signed-off-by: Swapnil Sapkal --- kernel/sched/fair.c | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index baefbf1b07fd..ec403e81ffef 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -9287,43 +9287,43 @@ static int task_hot(struct task_struct *p, struct l= b_env *env) =20 #ifdef CONFIG_NUMA_BALANCING /* - * Returns 1, if task migration degrades locality - * Returns 0, if task migration improves locality i.e migration preferred. - * Returns -1, if task migration is not affected by locality. + * Returns a positive value, if task migration degrades locality. + * Returns 0, if task migration is not affected by locality. + * Returns a negative value, if task migration improves locality i.e migra= tion preferred. */ -static int migrate_degrades_locality(struct task_struct *p, struct lb_env = *env) +static long migrate_degrades_locality(struct task_struct *p, struct lb_env= *env) { struct numa_group *numa_group =3D rcu_dereference(p->numa_group); unsigned long src_weight, dst_weight; int src_nid, dst_nid, dist; =20 if (!static_branch_likely(&sched_numa_balancing)) - return -1; + return 0; =20 if (!p->numa_faults || !(env->sd->flags & SD_NUMA)) - return -1; + return 0; =20 src_nid =3D cpu_to_node(env->src_cpu); dst_nid =3D cpu_to_node(env->dst_cpu); =20 if (src_nid =3D=3D dst_nid) - return -1; + return 0; =20 /* Migrating away from the preferred node is always bad. */ if (src_nid =3D=3D p->numa_preferred_nid) { if (env->src_rq->nr_running > env->src_rq->nr_preferred_running) return 1; else - return -1; + return 0; } =20 /* Encourage migration to the preferred node. */ if (dst_nid =3D=3D p->numa_preferred_nid) - return 0; + return -1; =20 /* Leaving a core idle is often worse than degrading locality. */ if (env->idle =3D=3D CPU_IDLE) - return -1; + return 0; =20 dist =3D node_distance(src_nid, dst_nid); if (numa_group) { @@ -9334,14 +9334,14 @@ static int migrate_degrades_locality(struct task_st= ruct *p, struct lb_env *env) dst_weight =3D task_weight(p, dst_nid, dist); } =20 - return dst_weight < src_weight; + return src_weight - dst_weight; } =20 #else -static inline int migrate_degrades_locality(struct task_struct *p, +static inline long migrate_degrades_locality(struct task_struct *p, struct lb_env *env) { - return -1; + return 0; } #endif =20 @@ -9351,7 +9351,7 @@ static inline int migrate_degrades_locality(struct ta= sk_struct *p, static int can_migrate_task(struct task_struct *p, struct lb_env *env) { - int tsk_cache_hot; + long degrades, hot; =20 lockdep_assert_rq_held(env->src_rq); if (p->sched_task_hot) @@ -9422,13 +9422,14 @@ int can_migrate_task(struct task_struct *p, struct = lb_env *env) if (env->flags & LBF_ACTIVE_LB) return 1; =20 - tsk_cache_hot =3D migrate_degrades_locality(p, env); - if (tsk_cache_hot =3D=3D -1) - tsk_cache_hot =3D task_hot(p, env); + degrades =3D migrate_degrades_locality(p, env); + if (!degrades) + hot =3D task_hot(p, env); + else + hot =3D degrades > 0; =20 - if (tsk_cache_hot <=3D 0 || - env->sd->nr_balance_failed > env->sd->cache_nice_tries) { - if (tsk_cache_hot =3D=3D 1) + if (!hot || env->sd->nr_balance_failed > env->sd->cache_nice_tries) { + if (hot) p->sched_task_hot =3D 1; return 1; } --=20 2.43.0