From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012006.outbound.protection.outlook.com [52.101.43.6]) (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 077C0306486 for ; Tue, 28 Apr 2026 14:44:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.6 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777387489; cv=fail; b=PNNF5t8UurEmBY4SPzlZbdJZFHkBMq8GdKWQhzOD1XQCJ1O6dXe8i79Tbk4qqpgWzzRGNuaStfeaTlnnFfojiH2GSiFvJF7ZE17ZY5KhHZOW7sedrGC/nJV1UOPyEH+IvlcE2VFIegfSEmWrRmQSIy5vaUaJEWtRgA5YAL4wWkc= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777387489; c=relaxed/simple; bh=LPPfpvSnoa2jO81IOfBOEv1BmmoWeZ6P2/s5dKbLubw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Lej6LbNsebssgrSiSsjvhvJsweimJtR64HCUdwC86d5xtwCxWqakeJn9SkaArx0GA3T6nB8sphmOQZGW8yJVbv0d1uwYnfApN7DddlTG2O1iIr4dM3BE4+5/stCZ1sav/r8VPS3I3Yz/EjQ2YZlo92q4y3n1erCaT8Ju0H0a6a8= 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=XcqlEstp; arc=fail smtp.client-ip=52.101.43.6 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="XcqlEstp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ztbk8ujaTOpNPWrX8rYXYjMChTD17zOurShZlzvizn6f5KK0D1tx+3gR910fbDPJzpDrMEwkB28e1AISWwtX8OxsQkwg+UGj24f1PAfwBPLQaqzOALgGv9+8wTrAxGK0NC3u1K5G+BeSqQRgBe0r0ydnK68FT5ogz67NYTCHv8K/Umj6SKHo8OUiZXHft5pTjMlSIPqrsjb+TPdP7jiDHZqAy3fb4bjPGX36NfcbloO9aRfEGwzR2u5YzgbCPuyN7UQf3P8xUfw466r4TnJ8kQr9Y0gr0St/+rUL0HZYxx0nrEEnOWQQp1/lMZZa/YUp/HOXZ3J7B+DSh9IzJeIKcw== 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=7+DfBndH/QkQEO9PMqNTZ0ZWeZpaOseoJYt9MhaDO2I=; b=INp6qEorgBTV68f7BTTGWZPEjgiYEtqbsWheBBIpRwxoCQD6NZ4/3AIFefliHkcQ7klJJYNZnncifTXvvQGWPx+GYmDbdhDiNB93iNQXW+NbhhSWlgUGC6BkH18ICOQu31RitjM4A0UUlHQb46MZxx6cndFmDkRTW6Y0kcZ9n2hnbGe9uMGv6YvFfp7Vu7Gkk/Xq1ke2ED8XDsJgeePtkdI714Zd8ur4GGLKWcFS7G5xzvJCr2l312RuhAA5/15hIz5gGmE8b+G/rNRWCqLIxcXU03whEtNg8wa6dnPxTi2VYXlTq0gvbK4Shk0E5cPxR0BsAuEZXs0Zh6Ko4hHvmw== 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=7+DfBndH/QkQEO9PMqNTZ0ZWeZpaOseoJYt9MhaDO2I=; b=XcqlEstpDaLKb/KvrWHi06GuI5SW9SU1no7bgn/9wTuG738TdK0hHcjRKlE7m7MIJ7LyCdOlABG5h55P9QrjSBSC5Vq0ToDO82hJwXUeu1un8YXwhIARprUvyZGXSCfsPLRb/L14CqA4P8Btl0h2p25oX74aN+Cfp93xDyVC8sCRodIiybuLwMwaxQt82wndF7TNqdjdIBCw1kZ+3GEJf2JybE93cUWJUU0uNozlrU2u5hVOYgvP9r52rDFZFFVNvPxxJ8EEkm9JrpfyElz/pvScGxpVeZPL6RiDjzicGS06GIX5y34Ca9D/CJvHH28nBo5DNes3Y1F2SUD7J1ekVg== 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 IA1PR12MB6211.namprd12.prod.outlook.com (2603:10b6:208:3e5::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.15; Tue, 28 Apr 2026 14:44:37 +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 14:44:36 +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/5] sched/fair: Reject misfit pulls onto busy SMT siblings on asym-capacity Date: Tue, 28 Apr 2026 16:41:10 +0200 Message-ID: <20260428144352.3575863-5-arighi@nvidia.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260428144352.3575863-1-arighi@nvidia.com> References: <20260428144352.3575863-1-arighi@nvidia.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: ZR0P278CA0180.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:45::7) 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_|IA1PR12MB6211:EE_ X-MS-Office365-Filtering-Correlation-Id: 767a984e-8808-4bd7-991d-08dea534ab30 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|366016|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: xKLWmoC9O917sW3IFJLmubtnDao7FNA8ryX3nOA/ymvlfk80agS+HtMJjxfIND6vO3QRBkP1CN/DxjCzneAqVul2k6mdFzj0j+cBA1h/yvHbt7otp5XxuxQ8+FvGHyWJ32ATkuIYoQuS6JD5I0VTGbwBen++fPTH12idSlg2/mFWq9Eam5Komr2xUxyTS8f0InLv3amaIBn5mcxgobkdoFgGrF/5UitnCJds0tR7KbukYdNZco3Bckx6zY8eLzVO10tX6hJuoTp6zvq6wi3/7KSVnFAhor5RIqZCl+5r41Yzst93Nr5YT4NFGPoy0jiYXWvKXBsFVyg7gINA6ZTLeWX1a5raeX7ZazTm9r20k6KnbPlTXRjBB70F8c+uCXXR/wXzMAzAWiyHWCNt2R4MJpUofAXgWOOcua3XW05XWXOJtLAy9eMlkmLY1XDKZlu6SF73GFdCQ5YP/vAN6qq4nRDE4eTDchks/vUW0/zty1BuACrVVlojOPw2J+/R2JslBDzC+EQ6R3BDeB+M1bKhIYKgiVltOIxfHx/tRDDpX3GFxt26QUXXXfnm9AJybGMj/uh8lQP+s/7VgqUzSYHGCgoovNSdmyXdYNynixK1O01i5UeBSS/wENUfTj2cjRF4dmg+VH4v/ogOD1UdZGkqOyF9iFQoIMW44J1JBQgQau5lcR0u+Ai657hlXsxhiOsbbo04axDEa2v2ixO895ADLAW58B0pQRd0+vCrh6As5s0= 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)(7416014)(1800799024)(376014)(366016)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bfjIT15PCJ3iGJMfKE7aa1NUUtiDhChgGywCniWXdDxNF3Lk1WiDz/S5VniZ?= =?us-ascii?Q?cHAPaWvuxC8bm9f3iDwT/TrDX2aqViyL5dSqISgPpZ1o1KjCKpJh+gnNnSCO?= =?us-ascii?Q?amQuM+ID+uOPUKF3+RN8wshV6taHkY32EAcYrpzSYT0PUUpjO0QjoPxE9YiU?= =?us-ascii?Q?7aY3NjQ633mR6tWbs8WsKC8lbPkhXLAoOaz6dL7rNIQywSkqZeJT99iVNRse?= =?us-ascii?Q?V/xEMf/yA+fPmFhqynRQ/Ry70tQeazrjSjKLkCyQEkNSI2m5NxdyGGR8upTI?= =?us-ascii?Q?HvX7roEWbFdonBdpNFnYq/py0NAu6LHlzOgSO8GcPSgCapBqryoiuXt6ol1J?= =?us-ascii?Q?aeetXf3cTij8WXyie+h3L+XFNyJSbZysP7DwpLGzWncoyDyNME+yfq7uQq7U?= =?us-ascii?Q?97i8kPRWf1fwSwC8lDbkOnnJWupkSxSRJVrcUN2/jEHxL/Lsmp6dQyYVpcvb?= =?us-ascii?Q?l92Mqan0vUMPOJg8O8S74dRR/zSjTH/YiJyG7pZNumSoZw5ZLMvX9RxDRlBa?= =?us-ascii?Q?lJAmU1UdIIOfjFOPCPMbWpCtHSfeogAxHRK0Z/eLM2/ifRHMbUULhDxYo6pW?= =?us-ascii?Q?t5inwCz8OcnFgm95j3evBDFKeKrpPWNlRkX+V3DgR7YMl3Hz6aD9/nzS54Gj?= =?us-ascii?Q?qRXILQz1LF+MT+ds9SHjGTv7ClJo5RONIoi8az+iGU6voA+MGyeV44o9D8oU?= =?us-ascii?Q?SiEJ8J2itdeIxpxspIJTIqhNxPAwsi/aeS+bVkR5JHBYrMJHyVS7IZ4HxIKE?= =?us-ascii?Q?0PTAcuQ0g433iqZ8F+m7EwK2Bxqv7uVQgOUqnR7Rlv/oTheDu7XKS5bifwud?= =?us-ascii?Q?0IQJdLLBV406HO994Kdh3ab++c2kA+40ilMHLMkuXSJg40VLLwt4GCUMVbJc?= =?us-ascii?Q?SSIsonolObqaO/nQYBEbC5px2DXfCVdR1uHi1/g/fs1/ARc8OIwJWfLZhCFP?= =?us-ascii?Q?ZgFrwnXK7Wf4sZjg6/ZlCVvVcKXZSj3E1KcgX10Q3WUHmuwVhDhMLvLo37cz?= =?us-ascii?Q?jdsph9mi/arOq9Rb4R+TK6prraogIStJq+p3y1iV8NymAkJar0PcBU6Rz2b4?= =?us-ascii?Q?tWDo4P8zAe8QzlJ/s3fdLNRF0zKdz3t4i5Ko3y3rZUcSYc1HumUM+FlNMAQx?= =?us-ascii?Q?mKXucHz4Dl+jREMnD9LOtKTC70I0uboXbCCzXcvjQ5qm15Tx0kD15becaBx7?= =?us-ascii?Q?fZyCjUAsnXDLXp8xNFQ9tH9tC4AkNIfvz9wY5dyv56ZjoUan6zCVlyWfNN5F?= =?us-ascii?Q?dcy1IhNX45Jd3WMVFTdWAYGdq4JYvdvh6trD1uL0D6HUdTC5hX7+0FWlht2R?= =?us-ascii?Q?gPMFFtvpRl2iZjbGZUzCAcaSDmfLMVscKyxCSpEy1TXLgLmtYVYy3Ay9tOYG?= =?us-ascii?Q?YxSSIujqkaca9rA8mkD1qygJZc0o/TYcPCOKyCX4ha7MKQlbDgzqTgVJ/5v2?= =?us-ascii?Q?9Lg64FleGDKVH3vsAnlPeoLgmcaBzb5fFx9Pq+2lQ7MCxM+OfoktDEtPVNhg?= =?us-ascii?Q?wWUXnbXRmeQSjDp26nERhuz+LG9QbpKQSIxQsm9jRgfvl5pTfMtlOSYB55Bp?= =?us-ascii?Q?nWSWYhYKXPVOGNBA7bUCAu9S4DyB1tPAO81YXB0tPa7cDfS8y7izgrALUGvW?= =?us-ascii?Q?jIYeIYIXG3oFbnQ35EZxUGimv3z7ov/UfrjVi3ChWN5LsMZL1VtR+NzmiFaz?= =?us-ascii?Q?tzfnCdPiHDiXl+QjYvV5rNyQzMVh/qFL6HrXAVgK9ImLFqUmw6BK1ivaHNWl?= =?us-ascii?Q?M1wuKdUweg=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 767a984e-8808-4bd7-991d-08dea534ab30 X-MS-Exchange-CrossTenant-AuthSource: LV8PR12MB9620.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2026 14:44:36.4172 (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: QEd75KltDHHHfaXQbdY4ZrISHPeOyB4xEiXFiVhKrt3hMt5xhMH7XCNHPWi/NyGTLwaTFc1LlnZDW3lJN2wNDA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6211 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 6a7e4943804b5..a1f4d70f6b3d9 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -9610,6 +9610,7 @@ struct lb_env { int dst_cpu; struct rq *dst_rq; + bool dst_core_idle; struct cpumask *dst_grpmask; int new_dst_cpu; @@ -10835,10 +10836,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; @@ -11402,6 +11409,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