From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012024.outbound.protection.outlook.com [52.101.48.24]) (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 D6EBB2253EE for ; Sat, 9 May 2026 18:10:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.24 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778350223; cv=fail; b=OFYHlTVKIJxj4foWYicrAU7W6RnqtQwvKBrUf8+LW/gjj8XbbdKg5Dt+Zm8gl9yW5/WoQE78jfrMMC1mZrDdPBeCMmRcQUoZGc7h1sleqA76g7gWdvwpidq4U+7FHdnCkVFtqXqFv9EhOK1g5n3OD5aCuNtKHKbsUMKCJzyIMwI= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778350223; c=relaxed/simple; bh=Vk3Qh9ofzVe6R8gN9UXWeYLJ8OquMIKkCg9ytcpJWgo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Qn3kwOKOLGBgyW2+6sdPybD9+p/NeHIY5H2W8Awepptb3K23ANWyVx5TLUi10eZQaW4CPf8wV/AJDw5ShM5A/hIrAuYd1+I3bDpAuXNtBDjr4L+DahYDchZT2IuMsp+mrz7hG2SVPFMnT57Wq6zjoNMz6e7hiML+QJokER9Mya4= 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=LF/GV7vy; arc=fail smtp.client-ip=52.101.48.24 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="LF/GV7vy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KJK1XEaxNYIJU7FI8HSz+4Mg650H3lLkIHQuq4ha4kaa0gUi3XxcC8rZ5LRsfMiLulg0bqP47EnanLeH8Hy+IwozA4KpKM8wQt9kh5ShDazoJJuY1lf7Mm5hxJOHhKbYEJ/jWdzbJ+UGvM/IDe04MHlPzSBmywGrimdULMUPrt/NAejdQawULM1KBFCfDReF+8UuRpGybH4ILzuwYtGoxs366b3nInx19xaFep2rkQV3NXumfwxTxSsH/2G9NMCuL0SaOaVivIr5T/eCU4b3dz1W574B3b5kFLhnLKAEen69NOEz43wKdtTftukL3Mp3PjIXNqTxcYRVBiai21lF1Q== 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=qQuQNDdKy2tH8Hqy87irccrzQr2UCUY1IscMjupCit4=; b=fK8FpXLR4OHgWL5FeaLHm8qaQOOLcdqJIlBFa3livb2dnVlDN4zPi6oIodnXUQc9C1zSKu0cUQTTHU/G8sD6fm0YVFshmuPwIhQh3+ZiUBs5rQt2QLoFCLZP8wKAh76EJ2uxqydC1gk+iB/0paWxjaoVAe9Py5SwaYVDjG3b8oCHN6By8hHDz5J0NgmMmowYlQ7OMw2YpNzUBEoIexcoQXTTn061/XclwmyA7TwhMcwBIRIEWRPXHortzsMvHr/L+NQv7B/bNwhh2IYQ3WOZEvIunL3UUYbAO6B5mxLUSqLGyhIGvMpibaPJ3dEqNv4SSVHMalo9YTrivuO+p3a+Yg== 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=qQuQNDdKy2tH8Hqy87irccrzQr2UCUY1IscMjupCit4=; b=LF/GV7vyhk+Gt0NP5MdpgJ4kZIJSZHz5NTtDvzkQIlpieovFLUokfUOIQDmmXRF59B7J6RfhNr8cl7/MPidGkMTTxZ0Gnow7LsSgcMUD79dN2WFfmKZI/7Mc4XDj3S3NNaNF5Gjoer+H/dI6SK7vYukEIUCup2mdg/k9efd2m+r3rOlQzPLZOt+lmN+DKXap6GdRzarIlPb8bdQmaVvItGoioyml344fbc313RCk45PBJxna+QvthHTai4WRREBZo98K8gIwBKlBJ1J29KV3iRJMaOGqGAl3uiAsH8c3GR+1n05kxWRAMND4mFFnLGzbnWqrpUX2CC6WAyMul4bZgg== 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:17 +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:17 +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 5/5] sched/fair: Add SIS_UTIL support to select_idle_capacity() Date: Sat, 9 May 2026 20:07:29 +0200 Message-ID: <20260509180955.1840064-6-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: MI2PEPF00000B80.ITAP293.PROD.OUTLOOK.COM (2603:10a6:298:1::417) 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: 3237cacf-30ba-47d6-33a1-08deadf63995 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: JpJk0niDdJhOhhzGAo0xxb/Uf8hiU3u39AlV7t5hH5PGXKcvHrgGQZQK5GiHjsoQnW5DLvBZsNySx3NnD5i5Au/q+vIAxaW3gQx7hGyfDhEmCf38hHSzc/adhKJeo42euafpnz5C9Opw/fAZVZJXrfHAMwW1npUuvLDN3kaT/GyoLIHMZGL9mb7DcdHKMR1mDJZYvLylYnBfigIfJV5HBPqM1bUqBu2SB5hLzogO0TUgrVmv/xX1H7Y8xnsGtatZE0Bin1oXcD+Yd4cIZQnjMHjONbj1BYooU/9N6hfzrWFGPpFvRc0+TKVovSqKLBHkxfaKdEvXw4KQ1USBEYgZy9/FlKMsgYit1pwYfBLMkPQBeNuCpVC62DLLbFWq+Un9RW0Av+4OnkXoX11yPd28Cp0UkXi5W53uOrA0/WLuDb8dJrtOhzTZADNI0D7qZXod+8zg6o71Qj/N+yrdY3Eye//7LpN/MMwi8z2TBf68fAZXkg7P/bsBp/7jQaLQlpKvmHslemo/SUYYNbCwAJ1eM0m2YDiOgfdigN/4rKV0GYh3T2UIa6QUlKin1Vk/v4Xh72lx+AbVYCshHumNigjfOBr3YfX3onnNs2AdiWP2O0x2XtASFqBr4O8/XDu4yZUmk6BmAVdOStg/GQ7OiuBm0F5BdZhqrpix8sfj6SHVVBrAUd8cqnKL8EslfKlVqiQS 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?A3/Ti91kRkoYgWoql7Y2Qkps9Nkb8A81N1mO+ebGu/jn+OHx4avWZR3diHLJ?= =?us-ascii?Q?JyR7GQpZwqoCAUiUR7N6k0NKOacyma1b8DOeYUCuca+Cd8yHuM3OfFRMqVdv?= =?us-ascii?Q?6Bj7UlCz7471R5dyrBLTiCoQpO/+gqPgPBMxiuTeICi9MLbioJzs78COEQMJ?= =?us-ascii?Q?xpEbqfCrhw4U0ZO0UcwIPvSaZ5WRMBxA9a2EzFzKlJB+yg7zr9W5SsACUczA?= =?us-ascii?Q?sHrRFYrupLa+H4YUrUQrVur9TwtyDGX5utvmQbwKQFyFpltHbb+CoM69nELE?= =?us-ascii?Q?u9QcR9MZzdcSvac7OOlaeYrw2ZTpLsb+bTSpxx4biZNg5slUybglJ+DnnD3s?= =?us-ascii?Q?5+EY+SyTqWwyVr8dbkFe9uTzPPp8rAmcymwK4Nl8UE1Me4DC27BjQjWWU7Aq?= =?us-ascii?Q?EtIgpYc38Ezvmmo9TE8+M4cAS3i53ISEhq6mf6AdGLn/kR+dnfg3ow4Zdjek?= =?us-ascii?Q?QoyAL82O0xnyOV8ehsDnMIFZIRodprOjaU8aICGHrPr0ex/S9tBnY5ttx4H0?= =?us-ascii?Q?AHm6ZxcXXvVy5+a1fhWOX0R8/yQ2w7WdHR5XlQtBQ4G4+L7geSRUHtS1/pcB?= =?us-ascii?Q?/HZkjkuwIuQXlNkIJ7rMi0HBBSXNkAz/u2FoOcssp0lUY5/lgExtxsVFCzbq?= =?us-ascii?Q?1genwNEUMGhjzprZWxyBG37glWnMvCgxO+lkjf7Ne9kxP9d5+5QbVq1aB+JS?= =?us-ascii?Q?8PVEAQxufYQriHuxcXR7Gtw+ox/RYlbNmJoCRklJQQ10+DF5Et9ZDgKDiu/E?= =?us-ascii?Q?LdRS0MQiqXN+vmSf09L95VNrsYwUsN0I/4Xb5FIRt4gzvdB6v28zB2eJDkhz?= =?us-ascii?Q?x1OsQ/koHfNuCI8gKyW3/km60w8xZzfmF/bbYcow2Q2XHVqV2YldtQTMYW4c?= =?us-ascii?Q?8R5xb/2AQwHF4tppWXYakQgkBAlNbjIOdzlkjGsszDer0BG0rwfYN8QQDoMq?= =?us-ascii?Q?A7FjmVpBs6cm4BooYsIy0taO4jbAGKo/9Vrd+ZD4rOLJHXGEF2fuk4j2GAmM?= =?us-ascii?Q?qBf7/Vuly688YycfADgGRlHrt5A5i0RekDtnreLViv+gdWxdWdGNIXD7vlq5?= =?us-ascii?Q?jblVk7lcIRBA8Onrlq4bJCL98YoxoTiah7p4MIimSbgGlJ5Cfnj2pAjeuE99?= =?us-ascii?Q?vgjBdJgAd6xG4VmWZPBSkLZZQMA/RxMNO/gOp496yTDhULF1Zw4z36/VOBtS?= =?us-ascii?Q?pVt0ON3KrxVU3uWnDbv4yMXMMJOKAxQ6Mz4kvi9JAlHWqNQLB3d5OUggFu/1?= =?us-ascii?Q?wYuZTrBbOaiEGR4sgh3RSoVfWdRpgbz2//ag/gQHuWiLSCvGN8QjboiE5nba?= =?us-ascii?Q?GhHHUTVKtJrHWGd5dEV+OATa1LLbhEYU/IBRFP0mbhce2Nh1Zd2Ms1rb4J19?= =?us-ascii?Q?fh+tbM8JxrydQcWt9WzyE/n48dZA5Ys11s2UOXKIUe23S3wZCN566UP6H2pV?= =?us-ascii?Q?qjTUK48dujXMuQdeZyL2xeBfD7/jlXgJmkLIrVFaERDbCFwyJWZ3G+gR2o9v?= =?us-ascii?Q?YqT6HI4pxKYO4t94lGpw7187JCe82yoFgFJXI6ELNnUN1X8aNWJ8Qrth2Prf?= =?us-ascii?Q?6uDrgqJ64kTdoV+dex9n6OmlZpX4E9/LJnzGEy0PLlRK+Xo4fFawAFK85ic+?= =?us-ascii?Q?VcdlHIQwoeNVy46hs975tVW8vKexzjdvPJa606gTSyS3weqFQtMVP+adepu5?= =?us-ascii?Q?uOZ+6s7X56sqeoYaaV2OA+qd8NS1OtsfUxsDaGyjKaf8D4okDdLJJ6xZ/fci?= =?us-ascii?Q?U4MgsmTkYA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3237cacf-30ba-47d6-33a1-08deadf63995 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:17.4338 (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: 3LkfdyebIjOOsywbYNsgTC64lQJBnK6U+A0imTwVZxUKAM1uO15sjQkrYgqdFJjePXU9DbUahYyFX3dElfthbA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPF9BB0D8619 From: K Prateek Nayak Add to select_idle_capacity() the same SIS_UTIL-controlled idle-scan mechanism, already used by select_idle_cpu(): when sched_feat(SIS_UTIL) is enabled and the LLC domain has sched_domain_shared data, derive the per-attempt scan limit from sd->shared->nr_idle_scan. That bounds the walk on large LLCs: once nr_idle_scan is exhausted, return the best CPU seen so far. The early exit is gated on !has_idle_core so an active idle-core search (SMT with idle cores reported by test_idle_cores()) isn't cut short before it gets a chance to find one. Cc: Vincent Guittot Cc: Dietmar Eggemann Co-developed-by: Andrea Righi Signed-off-by: Andrea Righi Signed-off-by: K Prateek Nayak --- kernel/sched/fair.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 2ddba8bd27e59..494149f14d98f 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -8084,6 +8084,7 @@ select_idle_capacity(struct task_struct *p, struct sched_domain *sd, int target) int fits, best_fits = ASYM_IDLE_COMPLETE_MISFIT; int cpu, best_cpu = -1; struct cpumask *cpus; + int nr = INT_MAX; cpus = this_cpu_cpumask_var_ptr(select_rq_mask); cpumask_and(cpus, sched_domain_span(sd), p->cpus_ptr); @@ -8092,10 +8093,28 @@ select_idle_capacity(struct task_struct *p, struct sched_domain *sd, int target) util_min = uclamp_eff_value(p, UCLAMP_MIN); util_max = uclamp_eff_value(p, UCLAMP_MAX); + if (sched_feat(SIS_UTIL) && sd->shared) { + /* + * Same nr_idle_scan hint as select_idle_cpu(), nr only limits + * the scan when not preferring an idle core. + */ + nr = READ_ONCE(sd->shared->nr_idle_scan) + 1; + /* overloaded domain is unlikely to have idle cpu/core */ + if (nr == 1) + return -1; + } + for_each_cpu_wrap(cpu, cpus, target) { bool preferred_core = !has_idle_core || is_core_idle(cpu); unsigned long cpu_cap = capacity_of(cpu); + /* + * Stop when the nr_idle_scan is exhausted (mirrors + * select_idle_cpu() logic). + */ + if (!has_idle_core && --nr <= 0) + return best_cpu; + if (!choose_idle_cpu(cpu, p)) continue; -- 2.54.0