From nobody Thu Apr 2 22:06:51 2026 Received: from CO1PR03CU002.outbound.protection.outlook.com (mail-westus2azon11010068.outbound.protection.outlook.com [52.101.46.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 04CEB401A29 for ; Thu, 26 Mar 2026 15:13:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.46.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774537984; cv=fail; b=Z+adbO4KJhzPqDqhap0A0fTaR4VImn/QoF9HqRNIFRSBwQhVgE5J6nwONPvSw4XdNtblqv7mixuBaDZeLfgUonwbNk9JfPSYKny1qdpXALEldH4UE8bw5QOF1hhFXiljomDwwxZ/jIXp6d6S/VFxXIxVQ6M8oVPS5OSkPwti/OM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774537984; c=relaxed/simple; bh=wAgUxS5HfkCswNy0VyVLxSNnc3BGNnfaSsJw1l9qqP0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=CvFz+18ovJYeROrETEu7kgxgDMSE/y7lD/0OdhKQSspIBb0gmDmqYxpBgA6aKaKyCkDEEx9S8j14C9HZYh2fDjIcMemzBKSuaL6ox64syYezYtmI0if9woyVRO5r716gaFcKYPiAMtjhgBc7FI+uurpgmBoxU92FedV4I9b7nSI= 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=b02Oc2o2; arc=fail smtp.client-ip=52.101.46.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="b02Oc2o2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oYrnQkpl6EvZuUZ714KZko+9MnmFrurMYrHz50Wg453+Uj+ngaSHk0oWJCr6fzMRMy9zpfod5B20dcHkXqwQyi5SknyMtNdXExKAUS2Qx645bbQbYRq5ycoGvKNJCuhWdaNj5JZUC+wsatqtIM5dCXJlJHngafCO8U1xVJewZOH3FDYsazz0SX719u+fZBiYO7j92+2MPGM3atgMlZ0zq5Hb28/6G9U/8aQZgw1640Bz7ibp2G4vD8PbMtiBu2T3e+auyzwKpE9XLpaqwXYoz1wy5DbCVyxVNFfroPMjqgw69/h3Z/YSmI4Fu98q1rJMYb+4IHR+rXZwsPfsAT+2lA== 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=rrfvgTVoNZbM3jBfC43gpMgwIKVz4DgedzZqYO0BoZM=; b=A9OzS+6KGxYjGR+WoR0p747O8qZLwJHZZd61nrZ4iyYjoWzS12FCBOYL7KYNROMOSKO2XXxhJ9CE7VYPCgZlGJ7ObzcGYHnJsCBQkwRgfrf93bjMqcpO/pSW0U3RfKw1+chGuR9aJ8wL8vb5zMpqOIUWOCttW82j5BuFSPfNhjshQSEuSx4hmY9/7SAYYfsOFV1vsfBAa4zLR2UQq5olhc9GNiAXpnhwg4h3alypc1ZSsWosS6OoN5BWHB8dYpbAnWxMSn7EUBFVsJIfBFBvKW0clLwFAdGoM6nVPL+LT6E4aAgM6945fR21mQO6/ehWeWlt+07QHf//cUseD3IObg== 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=rrfvgTVoNZbM3jBfC43gpMgwIKVz4DgedzZqYO0BoZM=; b=b02Oc2o2u24V8asCxRip34IPj+n4RcRl73tWI+QZpDqbq0XgoKuHzvTjkCCJULPUoB5Hc6b5W2WOpZXRYZYKHxRFmR5UJ+qxEsTqhgUCpTiN2N/aVHoulgsCvZO83g1XgvKpapwiLOuHHaD0WQXqXBzUh4verP0Zpn0QJE3fLwvqwF/R0qv5iTHs5mXIWZFSzZB5xJTs0hq96fn+/gZY1MSL+1ARLMqRtWf+N5paunOQLZuW04QqT0JfZArBhuAg/By7eymT9JAYtEdjIR7SiekRsjNIbs3jre9lvxFoc24lNUrWY38jgvbL0NFamhyZOtgqWRCR7Xb3iPTd9f33Yw== 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 CY1PR12MB9627.namprd12.prod.outlook.com (2603:10b6:930:104::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Thu, 26 Mar 2026 15:12:53 +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.9745.019; Thu, 26 Mar 2026 15:12:53 +0000 From: Andrea Righi To: Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot Cc: Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , Christian Loehle , Koba Ko , Felix Abecassis , Balbir Singh , linux-kernel@vger.kernel.org Subject: [PATCH 4/4] sched/fair: Prefer fully-idle SMT core for NOHZ idle load balancer Date: Thu, 26 Mar 2026 16:02:37 +0100 Message-ID: <20260326151211.1862600-5-arighi@nvidia.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260326151211.1862600-1-arighi@nvidia.com> References: <20260326151211.1862600-1-arighi@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: ZR2P278CA0012.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:50::15) 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_|CY1PR12MB9627:EE_ X-MS-Office365-Filtering-Correlation-Id: 7fe890a5-bef2-4282-dbdb-08de8b4a26be X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: yz8jSoGtMhV+szIOias0ZFg665kAhgIdXWK1PSPUCLuFDcGuAd16qIMMLXiFeS4KwdkSi96jQk9bM1BgNbte3PGfMSjREJuXfY/4f9c5Ick6hyb48PieSuRpOy9n2rHr+OFnHj7psM3dSAdBaWQ3nCNjHRGGc5gIdBBE/x/eIryi6LRkEuyBCkWyLk4Y8k8LXNgyvd32Zr9D5UuzRffsSDFBPwdd0PyI/Eaxeo+AhQHSDZZgM938ecco481xxpzpEg3gsz4WHUtmGLrxlRLj/GhiOq88TN5/bDZG2pA7ta1VFmHem8WZk0x8ZdbmWyecBJwqcllkAI3Ycd7QpvtLFihXya0Kxbl1UlCRDeyY2ce2MjIS+RNOXjHd72hwkSY/WXRQtN4A2XYC7jim011NVUfay0uOkHZFuKgmNVkc5SjUPOmT4d02iXEIi9GDZY2fJahnXRdEnxuIRWiUZLOWQvHQPLk7YrKat6PdBERUWYcsnnnbgpYzDVc4F4yQWMQQ5JkSj0AQyrbrUKLr4oI3c2G6r7yJE9qcuKtm4ue/iGIm5OchcNpKhSz4bBAn5R1MTGCSuH9+v+lwX9LOvlP/cC4EdpNaOa1TYpwqOHT6SHwexlFRXat2On9/0ZKHaN6UQQFQEfFhyzILmhW8ruwukdv97K2x1WFQ1LG47CnY7J1wyMDOQUAUsMLI2xn7JeaQG9nCr3HQC9+yghlrHwjqEUcQh9CMVvZvMcrjEZaUgjw= 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)(1800799024)(376014)(7416014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?IusCtYOdrxA5E1rH/g/h97jJ0JeMVpXCv7raf8hPzrseLRByEA5kwuEc36/t?= =?us-ascii?Q?ZtYOJw1ElFMYumWe7NADHacdPS8OShtO5l8P+lY27Y9E991taargPsvkTGDY?= =?us-ascii?Q?df15koDHzBwIEAWwOttUsqSjXzPrHPFuLJJbk0z2wojA8M8+8yzHfKHjZ2nY?= =?us-ascii?Q?vXN1HgkwXPGWNLU1uoi4Y4cnIyARV5COpji/zrBQB6bJDHHxEfxyQqs0TY6U?= =?us-ascii?Q?zH949uGJCRJDhKXoiI2RuICPpg0crxNiBItbIy/1GP/AH5QK0aRD14tiMhGB?= =?us-ascii?Q?LPcNjDbmZtuux4AhLYKfTPfPH4Bnh+Z/gHfQ3j+ShJ23FEyGEuzE3dHZeq1Q?= =?us-ascii?Q?o5TNCtjYXT/z8fZEHoJ/6oL8jf/yY+QcujBeSQtI/hbFDqK6boZIcbAF+vFM?= =?us-ascii?Q?vNM3FaXkBWVopx5oWyrso/BAuLN8JQVDhGOwwTtMTD5+JZdKlqU3Sw/Bzzu7?= =?us-ascii?Q?+hnPh6Z4bNSreEYP+JfeyiqgW9VcV9W2nAiOwtk4HKl9x2xJ2mM1THX8foWp?= =?us-ascii?Q?xRRTzXT4hbPB3O842RmdcEIYM6Tg5Wl0+ovIc7n6+AY6XPU+NW5oWw7STMZH?= =?us-ascii?Q?vy3IQxktyxtpGTipF7PA4SCOBephMrzl0LtFfTLIYxwh0U9HX/RemTzAqAEX?= =?us-ascii?Q?tS+PquwXvpQTeADUcpGtShkETlRdDjMq2fLMo/CZUKgrrbmb+NrgpJ6tjsel?= =?us-ascii?Q?M9g4FmKopUDG6ljMyAf3H9QdqmkU7BMUQ/GBP7KYEAnFFTx7woQBwVvQrdao?= =?us-ascii?Q?tDujlDrKXu8Kc4Ew8ZhM8NxPNKfj0ldJQM//DJ4iZMsbuvQsyennNK6N7B6g?= =?us-ascii?Q?Asy/8yGogtyt0hSgRonF01cJ0gIhYm6LALQdm8vVbIsc/z2obMR5Fr+cczz4?= =?us-ascii?Q?G8DBOW7zdXC4NJCySvYMnfhaXxYhi8JHsqO7uxsjPiTD3JABklIQUAH5M46b?= =?us-ascii?Q?Jg+PCDS0+Uek+TEv2vzslkDnR2duF0G/6p6xLXYRNQALs2ypBjXLfql9tLFx?= =?us-ascii?Q?BjRMIsH6LjjDK0jqIIReWc/Ths1Z0mLcvAt9fCPRKC21t+csD9eJTNP3af6m?= =?us-ascii?Q?SpzHKA0nNcqBqOgl0qVAf60fwpEn14TzwAQ/YvlA0p2z8xilMsT7VYSK18hz?= =?us-ascii?Q?TF+M7CazskOqubTksqHJr7Vve0vtXdR5UdGZ9M0Wjfck7v6JSeL0r2zyZO3f?= =?us-ascii?Q?HnjcmO/Fg0994+jPjVaJn3LRVGMqaNQBaiYJlk7K0Q9ic3/BzdJ20afP57RN?= =?us-ascii?Q?uXGVHpk9P443RIKX4YfFnwjYBTT6ItoACIYthE+B5CdPWUe0FJW8dXTy4LCE?= =?us-ascii?Q?q72ZaoX9zOx1FkLs37W2raLPTLTxkvy9wa8E0n5SrhaGqt2+8EoqgO3C19B6?= =?us-ascii?Q?h1RY6lm9DjQl5kDEujSXzDKOcv7t4qvettqH+Ulbh5N3yVkfKAt8qZompjgf?= =?us-ascii?Q?gtgfxfSlv6Sz5dUO0K59Cq7fZ8bvGiO+JL30IU8vzDA+ZvSPy/168VYhazbr?= =?us-ascii?Q?5AJ5uUQb853tVCWhESpFO+GfTeNZB1pm7NpVBIKi8uPvMOykloxLCiUp7hB5?= =?us-ascii?Q?qOWlxvWoRboX/n+Ai3Hpt3e6QQNns1s4efz3QOIYDKw1EtoIZgjEQRrWLqMW?= =?us-ascii?Q?vAdZzxtVB+wfQuCUrdbzfBMYCQqqtlWjnuHiWJKL8aYD5RkmDKHo46PmTQi8?= =?us-ascii?Q?qYk/XtBGdA+5CIHB1rMo749WIN3Nk5a5ZJuQfBqKbmFXA7UdikYX70gzyjMQ?= =?us-ascii?Q?/3VakU26qA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7fe890a5-bef2-4282-dbdb-08de8b4a26be X-MS-Exchange-CrossTenant-AuthSource: LV8PR12MB9620.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2026 15:12:53.0165 (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: eP4WocuM5vVCYhCB56iijn1H63orcyIFJ5w4t6DQ6I0klWYnn+8VkyAZlJuwzEWmOpaRkWTqLhJmJpG0+1P42A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR12MB9627 Content-Type: text/plain; charset="utf-8" When choosing which idle housekeeping CPU runs the idle load balancer, prefer one on a fully idle core if SMT is active, so balance can migrate work onto a CPU that still offers full effective capacity. Fall back to any idle candidate if none qualify. Cc: Vincent Guittot Cc: Dietmar Eggemann Cc: Christian Loehle Cc: Koba Ko Reported-by: Felix Abecassis Signed-off-by: Andrea Righi --- kernel/sched/fair.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 593a89f688679..a1ee21f7b32f6 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -12733,11 +12733,15 @@ static inline int on_null_domain(struct rq *rq) * - When one of the busy CPUs notices that there may be an idle rebalanci= ng * needed, they will kick the idle load balancer, which then does idle * load balancing for all the idle CPUs. + * + * - When SMT is active, prefer a CPU on a fully idle core as the ILB + * target, so that when it runs balance it becomes the destination CPU + * and can accept migrated tasks with full effective capacity. */ static inline int find_new_ilb(void) { const struct cpumask *hk_mask; - int ilb_cpu; + int ilb_cpu, fallback =3D -1; =20 hk_mask =3D housekeeping_cpumask(HK_TYPE_KERNEL_NOISE); =20 @@ -12746,11 +12750,22 @@ static inline int find_new_ilb(void) if (ilb_cpu =3D=3D smp_processor_id()) continue; =20 +#ifdef CONFIG_SCHED_SMT + if (!idle_cpu(ilb_cpu)) + continue; + + if (fallback < 0) + fallback =3D ilb_cpu; + + if (!sched_smt_active() || is_core_idle(ilb_cpu)) + return ilb_cpu; +#else if (idle_cpu(ilb_cpu)) return ilb_cpu; +#endif } =20 - return -1; + return fallback; } =20 /* --=20 2.53.0