From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012044.outbound.protection.outlook.com [40.107.209.44]) (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 A1C8A3BC668 for ; Sat, 9 May 2026 18:10:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.44 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778350220; cv=fail; b=nrmGXdleX0Hy0WBeE69gnvewbVDdwCu/P54yt1k4AUvGwTJcryPUZfm7y02PED0mKrCey6jCmh+8r9jFsirgIMhnz09HJzWw50DmWQpzkA6cD3C25XLprkXnYtorn7Epvv6tdzrHLhsh1+7lH3MX4iahEMfe2h31DDi5YnX2Ih4= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778350220; c=relaxed/simple; bh=sccEN1SyvVGmKrY18Dm5TFmcdNEPwmZSI4z8fA5yv7k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=SAIPvLR+fve/y+66Xstz90+4BILI9qYpNJG5+QO9JtKPfiQN2TRtRMJ6n0krtQ2oKhkRRls2+rZSPevOuvqyblT20ywWGVX6R4Hc6skbHB4mN9aMaJ/tFBSKBCKNsSC7aJksbo9VzzXSgLG2hdyzLKVXUE4xax0+fHR3A7vjZtc= 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=hbSmIJKI; arc=fail smtp.client-ip=40.107.209.44 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="hbSmIJKI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aKRu5IrX7ANeVVPZnLn4pPfMYr8GMTXBQe955rXP/wO86DKoHxQ3mPRmIL7ROl9tzWIpXQyL/zazyMSSJl+hcx0Qp9BjAzgpQihkxnVtAFxsNWzuj/8oMuMR3MdAtCXOjvB7zr3sbH/YRUSMfTjLB9cOjxq3JJVX3CnqE6ZfHuhxx1wnVQKg4L0gYAwAVcuvRTPkvbInA3eBJ3s+n0KXUGBlyUxhaHchjKeKCBiEs0yYc0ZRMp6ijcwbu9iNZfsDUKHOP7j0X2Pl+WriRQVph7vfiVIQ09KozLxZNfMppxQwhTczW+zur6Xp+2ypzt+v15F3nT/yGF79rN+LM1eLzw== 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=TJyYYFnMhT/fB3OcR/rIPJ0TPlmtMqiWyCqu1pqsSms=; b=nWeJoHoyIz71oI3pgEthYAdHNDooqUNb/2E6qPkHq2UlgOedrid/kmz6P/sfa82AebrjsXN7SdWhH3s2TqUSbs+axWJqtK0kg6reE5KKLzBftCXNMcwP8dTCWmcMqrIGO7n3T+IAnaxAY80f+VlBumUMvmfhYJRHcM4DqCQ/LEWMvxlZmmDGDXTMRxeCEl9xwiHogNpzLrfyuoChmCnjQ+HvuEc3gP3jzdCL6FfIP9yfYTGMVa07GbUEFqpMnCyco04cKqaLbCql83zw9d+ny4wrrqi6qaeW1/Bna/gcpiN0camPEjnAY/LQqU0ibumsa5lbz0FjW1sNY+tDkU0log== 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=TJyYYFnMhT/fB3OcR/rIPJ0TPlmtMqiWyCqu1pqsSms=; b=hbSmIJKIv3bxyR1XcyIJYBlzxCaZKp/21p7QHhMvKzPoK/UsDD+PQ5RSRXI5t97NCHqk/ERaeWBqYiJnG2IVw5Fv8ouQhSnPNL9qFuqTKvYWYWl7/LV2LF8izhh3KGTKSr/Kc7C7bcCEMjcngJjJW5G2p7qw9M4EbO2jDsPprOCRW1DE3qHyG2IgLWotWJ/lux0k3ZpgZfL0NBQzUygP/akhyPOii7K6uQn2Rj5prZf1p7oosiDqhzGOO+j9Fa+OhsaklkmvCHPzqXxejcd+dT3iINJvk5D44mecLTIGyISh3npkKJl6TEHwaRL0cY4RM6Aql3/Ak4xrsM+LePkfOg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV8PR12MB9620.namprd12.prod.outlook.com (2603:10b6:408:2a1::19) by SA5PPF9BB0D8619.namprd12.prod.outlook.com (2603:10b6:80f:fc04::8d8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Sat, 9 May 2026 18:10:14 +0000 Received: from LV8PR12MB9620.namprd12.prod.outlook.com ([fe80::299d:f5e0:3550:1528]) by LV8PR12MB9620.namprd12.prod.outlook.com ([fe80::299d:f5e0:3550:1528%5]) with mapi id 15.20.9891.019; Sat, 9 May 2026 18:10:14 +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 , Christian Loehle , Phil Auld , Koba Ko , Felix Abecassis , Balbir Singh , Joel Fernandes , Shrikanth Hegde , linux-kernel@vger.kernel.org Subject: [PATCH 4/5] sched/fair: Reject misfit pulls onto busy SMT siblings on asym-capacity Date: Sat, 9 May 2026 20:07:28 +0200 Message-ID: <20260509180955.1840064-5-arighi@nvidia.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260509180955.1840064-1-arighi@nvidia.com> References: <20260509180955.1840064-1-arighi@nvidia.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MI1P293CA0021.ITAP293.PROD.OUTLOOK.COM (2603:10a6:290:3::14) To LV8PR12MB9620.namprd12.prod.outlook.com (2603:10b6:408:2a1::19) 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: LV8PR12MB9620:EE_|SA5PPF9BB0D8619:EE_ X-MS-Office365-Filtering-Correlation-Id: 56b724a4-f99f-49e7-b039-08deadf6377e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: I9lOq/pcs6NHAqnR8fqUzm8LsGsgDH0VEG7zkkZlpAncHpoVlJBhxG9vfT/OWuH6W3G2d9ZfNFUFeW21bmlLHLyBWdS2dkUYvjsxXx7jDxqK+NVdEOj9KgnRCluRThF1yX/6ohw3LgGrtq/9iJ/qfv4WSNVs43En6NjqBN1Nou9VY8MKDFr/hP1aDRaxk1qcD65LIoV5baXnP0jKaTE8grffE5YPXrhLG5sGA+er1wRwSeBKx3QOCC+kedWjkB4RIuTaE0C5bFv3Qw4esgW2L0KuR6R0W7BQIkQ3RL3jxFutdPglvp1BQzfzRylY/Q81vtv2AQf+R/MEil9+VC6WWkKq+iast1XqvIX40nZwP/Y+eIZTw7mGxd8fkRDqJVNbutPP5qPNVRxhbkdxhX2zCAZ50GWV6qDy8U/goZ7REIl3pftTmPBHsbIa7hR4xNrKr5jHzKJUKlVeoMiVwP9XdZT5WT/3c0OBDzo1ey9aTOPAUb0rj2t/HR92g7QHOa5GfnSzYcWbKFoYHwcfT16KZ8RQHkNcSLsEblNmMBMhFKMP3fpmMnic3A6Yhhg6+qTZVwCzJuiOJi/dW4MCDktYtKHNZLdg891IKK5U4cuKvzwp1dKHpF3xL76uzCKkspBs8ZbmTWf93qRD4aBNTHgKfIu9J4I7yQst+s1Mz2+yYkZf+YZ3j8UYSRcPXrKqWvSd X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV8PR12MB9620.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ri+faBLXW7HkAXfazKSa4BRGdrmIYFrvv6m6NNjxHF8nSlDX7GT65nFCczO0?= =?us-ascii?Q?PGXEpxjXgDAoW7LnsD+wrZUb/20GuCfKoQlJ4V6BLHmaqbaczkzNn/E/rleZ?= =?us-ascii?Q?P72FpcGXSd4+5wgPDKCwMCfIwSoVULe2U1tJ1jUqHrU0+XC4ru4mFyYT9HNg?= =?us-ascii?Q?1Rk9p6DEwciTY4GmQDThP6ptmnSD0okpifp3V0pZMszK856HgHce+KXMsheO?= =?us-ascii?Q?fkkmlifSfCT4DnD9WzT+E7YeZUDPTf1ZQk4plmlsRRiuClOX5t3rszwUayTU?= =?us-ascii?Q?0+QBZu2Xp0wG5LF3FnThcQgaUa5jno+BBOMBC9mTgYaFHyl1DD3KKEblUCp4?= =?us-ascii?Q?KQzaNL3Z5kC8oknUrdSFPu/h2QEUsA17q6uHnWRE9qbg048ayV74M7eXuO1T?= =?us-ascii?Q?Z0maOB7wkLfnETsfHLwAc/MjqHEmpZ0xaHzuT9ve3muX+FhhjlMlOf+qRH+v?= =?us-ascii?Q?kRqLmDrQ4d9dwzZe9TXkq178MVhI37Bz7VynMakwsmmWnnlgCohoov9LgdUc?= =?us-ascii?Q?wr03P1Pluy2q24lDhbtmqyOsnYbwOqIypZrNq4eENIcgUihIBxDpMP4Mcqse?= =?us-ascii?Q?cMiPr5g9hkY5hTi70/JBjydjBMmxiDBt/2Uw/TtEa4Oq2ZI/vy6xAHaXp4Jd?= =?us-ascii?Q?C6q0LA8Vw8EMCsSwJtoMVJc/79GymwkfZMwuqd/QfEcnR5GAvTPScuj+yNDQ?= =?us-ascii?Q?P2ABbqp9Cnr6Z7Ps/+DkfQHg2nztgUXqbb2tBLojkaLtwB563fri0cg+c8+R?= =?us-ascii?Q?vLeVd/q8ysUZMczgnjcSMh1ebV0LwWWMC0YRj7Hy/R3QXWoDNoJOqmDKZ8yP?= =?us-ascii?Q?jutGZSOXkxinFfSgoTL/InhqL7AoTcy/6oThHoNjn5NeEt3l6/KDlAGDwM/c?= =?us-ascii?Q?Qwj9uCwE5J/7UT1VKkhtdEbsgmZ5MEUZ1xr7EDzAPvW8qgVfwP4kRsfwMJ7t?= =?us-ascii?Q?VxRFd1+Oc56sDXGfvj5UuSwsvY8CPA/LnvcuqJvmzjMTL2j0Sye2vNgcZTaN?= =?us-ascii?Q?X0+gZWCN4ADT3FGtYTX4Ccv3PdscWFSNvEiBkUpyREu4iXaLca5sAJuHDn0n?= =?us-ascii?Q?l/YdYVFoBvLTsayL8j5FidsDG9pNY32qilzBeWhlnD/ZxWn3Erujc9mGg8PI?= =?us-ascii?Q?FvUKpMQXflucILxVEZrE0qQv/jgC0DCeARLGMekzgC8tZIlLuC7JJX4aKnXK?= =?us-ascii?Q?7XQPHOSgBE3sR/Y+OYfEcoWeh7Q9OvKqAinrV4/plOkn7SXuVDnAYdPZcBbX?= =?us-ascii?Q?ArY37R99cm8hSImz8FnMnWE1P0O5Gp4SsrruWOxh4s/SCGgbzycvC9fIglth?= =?us-ascii?Q?Nkh46ufj8Sdsj8dPxI5fm4Yy8yXSR0GV49L+4MycP7bF8rTLynxiOI6ACS7l?= =?us-ascii?Q?C9s9RwsOE+Sn/lyJvKp5c5ifXrEEwRj7gJPDV9f/X3Y7MNSx3y1fVnXZFoHB?= =?us-ascii?Q?YwtsWYMXkkAC0P9HU+Nwx6IcVPU3GZx94x6R+F2s25yj/5uPOuuc+XvwkTuz?= =?us-ascii?Q?TBvR6zpQ6ILvL62KOjaHeTKfjYNo69MO4VbFz5Lbtaw1VcEw3YRuzK7UygXd?= =?us-ascii?Q?SfdpsQh1gT3LYk7C2TVUZQLXs3wE2X1mzSRWMCTuon1PuVvOF8s4ZMWw+rZk?= =?us-ascii?Q?iNYcHvUf2fijA4+6MPBh8k0CNm0H8pwZ7+0wbAI8iOrkK6mN9c2pYSnEvkHY?= =?us-ascii?Q?P2xEpU/zCdz4GtqigtVqpZOUEQO5LqJSiTKE28Jk6jjr0/CBPUK87D2uBHKu?= =?us-ascii?Q?qv4H4Gn94w=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 56b724a4-f99f-49e7-b039-08deadf6377e X-MS-Exchange-CrossTenant-AuthSource: LV8PR12MB9620.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2026 18:10:13.9310 (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: JnwInhaaaWToCkX1+7rnI2jg6fKv25dIvvQkxF/4vMCo9FLIZVQXj59YJnCq879CatangxI+qjzX8KOiI5Q7Uw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF9BB0D8619 When SD_ASYM_CPUCAPACITY load balancing considers pulling a misfit task, capacity_of(dst_cpu) can overstate available compute if the SMT sibling is busy: the core does not deliver its full nominal capacity. If SMT is active and dst_cpu is not on a fully idle core, skip this destination so we do not migrate a misfit expecting a capacity upgrade we cannot actually provide. Cc: Vincent Guittot Cc: Dietmar Eggemann Cc: Christian Loehle Cc: Koba Ko Cc: K Prateek Nayak Reported-by: Felix Abecassis Signed-off-by: Andrea Righi --- kernel/sched/fair.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 6f0835c15ee11..2ddba8bd27e59 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -9693,6 +9693,7 @@ struct lb_env { int dst_cpu; struct rq *dst_rq; + bool dst_core_idle; struct cpumask *dst_grpmask; int new_dst_cpu; @@ -10918,10 +10919,16 @@ static bool update_sd_pick_busiest(struct lb_env *env, * We can use max_capacity here as reduction in capacity on some * CPUs in the group should either be possible to resolve * internally or be covered by avg_load imbalance (eventually). + * + * When SMT is active, only pull a misfit to dst_cpu if it is on a + * fully idle core; otherwise the effective capacity of the core is + * reduced and we may not actually provide more capacity than the + * source. */ if ((env->sd->flags & SD_ASYM_CPUCAPACITY) && (sgs->group_type == group_misfit_task) && - (!capacity_greater(capacity_of(env->dst_cpu), sg->sgc->max_capacity) || + (!env->dst_core_idle || + !capacity_greater(capacity_of(env->dst_cpu), sg->sgc->max_capacity) || sds->local_stat.group_type != group_has_spare)) return false; @@ -11485,6 +11492,8 @@ static inline void update_sd_lb_stats(struct lb_env *env, struct sd_lb_stats *sd unsigned long sum_util = 0; bool sg_overloaded = 0, sg_overutilized = 0; + env->dst_core_idle = !sched_smt_active() || is_core_idle(env->dst_cpu); + do { struct sg_lb_stats *sgs = &tmp_sgs; int local_group; -- 2.54.0