From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011068.outbound.protection.outlook.com [52.101.62.68]) (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 A057329B781 for ; Tue, 28 Apr 2026 05:18:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.68 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777353483; cv=fail; b=SNv0RLQjsU5H6USlJ7CsIh94Sv6HzPWCk4aJSWwz027aTGssw0RqVovBYoX4VyhsWK6U7l0Crxk6wWNmCv8L32LWiQKgf2+A5bDQDIgd9ikoLgdQ09Vgwx1mx64RaxdQHzpoHENono1B8yq8UaCoXo9HdyjOjlhcW6+7Buvf8jk= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777353483; c=relaxed/simple; bh=Lytyv7WCkCb6MgBK2MQoAVpssOh8A/eG2m6w9EG9Yc4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qOsN27SdEd/sfFYbRy4ZaXGLjgYfBElqTBcH7usKAoTDOtddFB65gWDYpj8gwM/IhlBuQ+tPXuAVyJ6yr7GVosPmdM9LCdnzrYwuKhGCBwSKR/QYocfJyIglytqL9Qo85WpzFWikQSJ2noUGk7UMh2YKe2N8/h+iyd2ceXzEmdw= 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=lzxRrobl; arc=fail smtp.client-ip=52.101.62.68 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="lzxRrobl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GoBWSygdVWgxgixe5hnvjUGUQ2sUla5C6ps+xOJixBP16m6B0Ui49spaJe5pssslrY0cv2dMjcg6x9SM+lsE5iT7CtE8RvXzuNufoieTe9cGdq7+R1s+FBt+YwgCp0ZwgKPHwRLLlpwyAx3GV8ZujtNgD3QlzaWJm7k5neIcxPEx/CBAZRcHV/vofdjfsqiigyyN22c/H7JiT2uvhforQjiPlKBXZS7/eJP3qcBl4CHUvSXhAGBXBI7F+8ro3L/Vw0YLQOYA1qidYSnckzNO8o2rbbc3pjUv3IAq4EdE4bbOhS5v5PKdH9CU85eH4jMbdGlVEDBla+kWei1o/5mxLw== 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=KvNsD/VMHVGbrj6Hdcn0fzK/FWqmv7LlKWczRgKhgg4=; b=YdWMY3cqdgcx9tPeNCuXE1R1sCR/ic3BW7WVleDjBUlum5qHCz5ax7WXCM1XN5FqcRkB3T6B6ittrIuaeUUdPrsQrJuZFT8HFMGzx7DRacsnYgOkqpEpTVNO/UGGcoX9oIvB8juNqZXLeaYgtwOaA0q7QkMhSpIxN9guLp/RgkUJ25pbUuaw/mg+J14Q7YvG4AaieX4FzsZugPvbEO90U/rnDDdE7ehA72YGpiGbvO9j3PSMqT63zSe7wxcHmkv1bptvOr3UsEpgR6F33+FVN8Q4Ulam5rfmkat0lyPhhkzcYbsSrsoJlZ3bD2dRoWxD3z58FRuHHATZUXqgP+BaWQ== 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=KvNsD/VMHVGbrj6Hdcn0fzK/FWqmv7LlKWczRgKhgg4=; b=lzxRroblmNQb5bsxgfKc81rvA61vEv/X6vIDvlygPxU+4QU4OysREsxfn5cDH5HZcjgxuiR/FI3vRsGtakNzSA+J2wgDauXkQhtob1gUfjo8DyBiPVQcLaDjhUS4K67RjcKJlaiQHMot05WMYgHm/QZ5wo4YXcVb4lr0jzGQAdrACEuau2kePerXi1UlVPfXZ1Wzf7t6y2GePBW35+9rZOKt72sbUNEIbQS5d1K8oQd8aEts383IkZ0FhMxRbGak9p8QMaA2y5Xvj4gMVG/wGrQ+rjNjSZAWXSo36LExHquQz9zB+5CZMPLN8+a7GkE+rUHwf+yPBbnRpJQg4FYFWw== 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 CY8PR12MB8337.namprd12.prod.outlook.com (2603:10b6:930:7d::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.16; Tue, 28 Apr 2026 05:17:56 +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.9870.013; Tue, 28 Apr 2026 05:17:56 +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 , Koba Ko , Felix Abecassis , Balbir Singh , Joel Fernandes , Shrikanth Hegde , linux-kernel@vger.kernel.org Subject: [PATCH 4/6] sched/fair: Reject misfit pulls onto busy SMT siblings on asym-capacity Date: Tue, 28 Apr 2026 07:16:38 +0200 Message-ID: <20260428051720.3180182-5-arighi@nvidia.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260428051720.3180182-1-arighi@nvidia.com> References: <20260428051720.3180182-1-arighi@nvidia.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: BYAPR07CA0063.namprd07.prod.outlook.com (2603:10b6:a03:60::40) 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_|CY8PR12MB8337:EE_ X-MS-Office365-Filtering-Correlation-Id: 3b527578-ac48-4ad9-77b6-08dea4e581a6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|1800799024|376014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: 1ZMUQpZKKgy3L8vSzBY8MVUwo2JZjKg/D5tKGt/b5FyOt4CfkXi+u/bBtZrE09Zzi44iuUyJLvr3yfD807kfgB61gZIXLU2VXpecDx/DeUy+qCHe91+5vx1qdAZ09PSSSfggODUnwD0l8nlr2ZsY6zSEy8zJ5gtbR0qGXFKkkn2G+BziXOlp72WA39eAZwUfbr0ZO46mCzLLgbJAobPyYhUqNV0dlFC3ia3Hz49vZcqksvUK4tN4/uzgn+4HDLO68XC7fNzSqnSw41xYB8imqJ9RwK/fHlW8vb4vASSVhp35dMB6/wYzAXLn6c10FoB67mvWorIsloN6rttR6j0HrnQduKyfx4ozyz+NJbL5oN8/5xdIOgmxTErNnae+VHeCvx/OzIF95cGbOPwvPBoHU4F8ehTdclU9NGpds/YzM+Md+Jj3NrQk6ZGVqU0yNs+epuHZoXyz6d1yvR5y98RrLhgj0mErzkGGe+4DzRb0G71JKepVri+wZPQTR2EQbepWCl+7v94FlxgaZHz2Xtl6iPOaQQ/wiG6dIczsDgRaybJ4Ol8j2T4POyJ2akijtSWoYqVA5FZYSCD3H2HN73npxWDH27SU17GeFnzZrkqTieq7/MF5I0Z9TEZ5nHIr6ExGr5lN/kVNtcBWlIEE+Ql+2Nz5IEa/WratBaxXk3+oRP1+MVtqN3gUCXPc9Bqia0J7YhfF/X8Z/67J/RV0ex692YTWthnaZD1Ua+m0USNiUZo= 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)(366016)(7416014)(1800799024)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2X1HxgCZGk5kx5dgq5sPNJxPvjWkYDbRz6RGdQofabuFUalfUSJWveYSQD/s?= =?us-ascii?Q?g2+GsUP/u86blgKwUlnUosJBhOLXCQb/uvxa1SqrMUhzLWXqnoGMq86FMpCe?= =?us-ascii?Q?xQitgVfyQcE8s0Xt1o8zHJtJFbDH04O2JNdHHFyrG1Xo3v/huFVtUmcvW4Wa?= =?us-ascii?Q?8iAGAWXueiL91EuN5iKl3hZiDZkUOaT9I+t/pO4ZMmrRhKPGbHj4VVlsqfzE?= =?us-ascii?Q?7gulyghONJ8k60O4dG+kRM12zQJaBQJ2Q5Ipb88SJEJPRyVlrMXMxn2WnZoc?= =?us-ascii?Q?V0kl2IY+GMNBtqiafP5Ie6eIMQyWy4heT2tW5zjUmbfbheHE0zaz5vc2tZjJ?= =?us-ascii?Q?bSos0SSww4Ph5dB7S3tPV6FFAZ8qW4oXeV5mY1ZPoCnERTZi0qJfK6zmxF5+?= =?us-ascii?Q?GpGzPt/jf60qV9/inzCDlitZuABIyZ6AoUET2+25rivOgIF1dD7oQYR4LYoa?= =?us-ascii?Q?fR/mfYlxFuFsGZxekTquBHBfFNhjnTdviGIVyRWbq0bcqFKv8jaHTxJ4QNRX?= =?us-ascii?Q?cBvHTvk/hUk3V+NhYhNbX4vhZjnFrTou91JxEIUxuDR3WTX8opaCiK6XIylD?= =?us-ascii?Q?FIEIas58i2HYnwE+jNiYwW+9YlIwhY9GfeMMYC4zfd4vL4IyoybXQXzS+dfZ?= =?us-ascii?Q?Y2CJyUYQgDLW63uElXoQz3LMFgPLl0e16U1JEyUrDYEcFqsHjvyoKlzsYMb9?= =?us-ascii?Q?fz7unYu3D3NaUC+ZznmH7GfloJNtYNB8cb1GBWSRcV7JwsfIi5wAtWbRpC79?= =?us-ascii?Q?8awEftC0pgUyvP+Wwdon7SvxbV5WV/2y1sVEYBPc9mgB79iL9A6i+BN8IgeG?= =?us-ascii?Q?JkfkX5dHRWWy2kGzAjXNvlq3/bkWxLDG5LG4atVgf45G35YKIoD9OT2s1FDe?= =?us-ascii?Q?dzVG8DS3+rhVpOZ0zA4eLeWa39CivGB7o5503po6Z2hvlpVZQBOmJD+pAFJp?= =?us-ascii?Q?L7bRD+YtySrMZyZoYXtEJk2e1x7wjQOh5iWH7QeRFXbqckZUIboif2fZItl+?= =?us-ascii?Q?UmOvnPn0uj728aBRgJMYjwTRn1TpcOapP7WMYkmwT1tABYB/kCILrp/Bl+c6?= =?us-ascii?Q?YWOoWn0SF74UuCk2Lupt3fQrhklc0Xs3q0R7AjKy5F0ssQQzI+B+w2Q6m/Nm?= =?us-ascii?Q?UeFNP9FSczIHTubMvJiKt3Yoj0sa3ZNEtM8y7XD5eQOFCrXKGZ8hXA70rdue?= =?us-ascii?Q?HpDUElOkvPj01Iir9K3URePaHL4iJoqnTNbcuT1g63hANqRDTdY4EtLlxJzK?= =?us-ascii?Q?H+4OH//j78DDocAPbA5k/uTO/fGmaZD75MssKqH6QpknXOFvw3apTjihGFn0?= =?us-ascii?Q?NE3LBuR1HyTfRubay3VyTaSIeu1qU/iqs6viz3mMIFnJCLA/Fvw5CSCQ9j91?= =?us-ascii?Q?uEDssvfbu8m7nKgjo2wXvl7LGviOkbHs9DtjJ+lofviR3OKpZT+eiVBNAivd?= =?us-ascii?Q?QHj+F9cqQ54QQTy/wegiClykzUeJpW8QKDVYYK7nfdcP4v/AaGJavC5TPRF5?= =?us-ascii?Q?vela9f/7OhnrKiuCroo1tBPpdXSsgMwRSw1sAF7uO8jwSZ1jFL0fp6x0YSDC?= =?us-ascii?Q?L/qoelQgaDRX4v1vewKX1me+upqcdV28HFqKupTqUHfdY7IXW7bCwQwlPcvy?= =?us-ascii?Q?OunuuhKzgoAaKLf9RSh2yNmuthirxU39QudyR+tsq2oVH03t/8FREBqv26Rr?= =?us-ascii?Q?IS8X1kWfEqRgmJ1C4MsCq8OG7TmtxR4tBivVgmNUehUiK+yjMx3n9xRXPg11?= =?us-ascii?Q?x6Isg8E2LQ=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3b527578-ac48-4ad9-77b6-08dea4e581a6 X-MS-Exchange-CrossTenant-AuthSource: LV8PR12MB9620.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2026 05:17:56.7625 (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: ZAiC3NfqYIP/K2Wk+AgAJTNCmrWf16zk/6PtYXOGUU4zJK7GcgPRnEO3kVN8Z58SwvmF5ggxKHN70Q8LkUlqDQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8337 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 6349a425cda7a..3e61e1ec513c5 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -9612,6 +9612,7 @@ struct lb_env { int dst_cpu; struct rq *dst_rq; + bool dst_core_idle; struct cpumask *dst_grpmask; int new_dst_cpu; @@ -10837,10 +10838,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; @@ -11404,6 +11411,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