From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011036.outbound.protection.outlook.com [52.101.62.36]) (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 6419626B777 for ; Sat, 9 May 2026 18:03:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.36 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778349821; cv=fail; b=m6jAQ0Y3K9edm8XF/849d5GwsRtp6ojdPOwCLKnlLYJhQFEE3SXhCCh9WF9tjQjv9XkHa3WPk2aiUNCoElkIzFtVE+abs4Dme3pXxMAFzosMJ5n2YkXETx2g7O6c5ZoNTlwb8j/Y4BT9E1h0dayOPhpV8ZI0E1r+53fgojSr88s= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778349821; c=relaxed/simple; bh=Vk3Qh9ofzVe6R8gN9UXWeYLJ8OquMIKkCg9ytcpJWgo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=pdDS6H3eEWjm/RdpD0AeKhoFPO3qNeRkhn8xvDsdg0xsAvMl92atGlyM60OjrVGUJObKpU3pXY/peB8tUd8VB5Eah5tU+QBoZnrkmes7aqIH902RFtLK4quqiDnQgH22ZPOPRYAmxbSSHf5Wd8DAHdzGH7888yLKMUs9WmC/70s= 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=fr+I725j; arc=fail smtp.client-ip=52.101.62.36 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="fr+I725j" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jm2ug59raFlTpxF6v7+6zxf4Omt4O4R5kwh+vWNkCk1in6uBnIAnRUqJpPwxxVYMq/27G9XzsuIUKlsFwTuPqlbjY731Z36sQbGJRGzlk1fwe33FXTfE0igGFz//0OoogEqmZQ9od8zjV/LesSGrttxE63G28jpSP2SrvscwPIPZg4WmHkI+nJR1xoKE5ZkPtrW/+ANUVQwKBAcpPBadmK4FWN3ALwo2c8Tsdjq+k2y5Bw0FKYbHu1PDOPF55zg5Da+z81506s6dL07VVp5aMbnB9/NEv6fj9PS9Jn2/WYptvONSiL4NSev0wqjpdzAVwcjVHcUL5T5TpwflNM9k1w== 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=w+4S8BOgnzdGBKMVOrXRzUsCK71fxjUnTi57IPvwXE4zlCue1qIR9oQ6V2veK3VUZwwC9jyIKzWog2gRJ9NFGSdP2F9k5I+1N4xxlTJ3e37vLBHAut9TSwtEb1COE6ypYx9GMspytqN3BX6CxmcKFCE7cFSsoefZP+kMv+bu2y5fnqGRNNSxQYjaMA2aUL7d8gtSJNAO0Krwm1ZYd26ycI5l4KnlHEm8y/A5/iRt6qoi6/pD7LqyqxQM9jnCO64Z7zkCwfwgJcf1GSwQOKuOKbS+c2sp35PXY2K0yfk0AQveAIWxRN8SRdP8pNy1cLFfEZtJM59MMh+bb6EqmT/j8Q== 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=fr+I725jinQhPcERSGlqng56vCeNW+pWyi+2Dqchtd0rRJEJy8KvvR9+ggDfsy1aslSuOZNIEtWjylWnudq/3oqfPTQlahT38EQdFQwtCs+U4PoisVXvyHjb0EBDBVdluYxXA83i5BOSWNd51kqgzRw2Ufhz4em0xkDEmqgElrojZoB5DvOYzif31WCm4xg7XVTtFsjaqdWNPh+Rlf7V4/4qihFf1Qf48K9WBv9qYb/XafYdPSVasdyjIOjk3aGDOki+NY7LtjoOHKkfWCGAdO2HaG6zcEqcLRUThviSBFP+tgns77O3ichro1OXJWW7Ni46htr9RKWmOSpRl6n0BA== 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 DM4PR12MB6039.namprd12.prod.outlook.com (2603:10b6:8:aa::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9891.21; Sat, 9 May 2026 18:03:31 +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:03:31 +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:01:25 +0200 Message-ID: <20260509180302.1839122-6-arighi@nvidia.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260509180302.1839122-1-arighi@nvidia.com> References: <20260509180302.1839122-1-arighi@nvidia.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: MI2P293CA0009.ITAP293.PROD.OUTLOOK.COM (2603:10a6:290:45::6) 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_|DM4PR12MB6039:EE_ X-MS-Office365-Filtering-Correlation-Id: f85340e2-947d-406c-890f-08deadf5473c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: Yug+Wnl291npbOHnLjTelwHSjIjEo56VPbSnFXq68uZL2vPeMgzk8z6vQc0/3iK6BpYkks7syA6ySVrIEDzjZYZuM7MtB4lkqJ5KEHvFzS1aTmJW9+tAznASepdW08d7CukRUMarErxHiRE0wK4/PPAuAOpROP6BMatvuhC4fB3TUjOrxAoD/PYww/2fobqbXL24g3O59phrThuywOyzLsv9yuL5o/7nw8Er3LqONqDuT6nDkfNKgFN6PxuJ1PbBQTuwx0Xz1r7UXTXNiI0/5Hi6rzcNbS6NM+RY2h7xcltYVw3tn46iRvEiMrN04+A1or+YmXpFTl8tKjUzwqW1MYoGChJE8ixoNvtmZKb+bIP3I6w2WmKzqCrFOkGeliSNczYunWMTn1aewA58OPOfQmlB8XpqfTGCD+I+iuKUv19sXyJQVPhUFUw/b70c7JXyWmq6orzBnNXWKIulBmuIQSS5R4qY1/tsxRmZc/9AlX9R6+YcXdvSmLuc3t2AIAhFpw0bnvr5Kh2Yoa+eo20Mjm1ryQJFOiNAuSBEYzUNcziKoTq3v3yYgnXKsiqRdCTZCoiE+6aJragMtTRenosB7D1BBT7xs1rVLDAub3MhNu0oJtYi32EfKglaQIJ/Ivxi0/gbd0+OCECVD0SryOTMJ6xIUtR12bxMMwoUGWVXucky5EukqyCVIWS7YW+l9Zc8 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)(7416014)(376014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?99CY6BfLGjuVDy1T9YbXOQKS65nEitGw2jNHO9kohbLaTzMyJ5PwCbzmwGdY?= =?us-ascii?Q?X5nxNQzRQXEUu/W6MVuIIAcL1Xut9mJgKPEmLtFvl9EYE8Cejqji0XsjIbmu?= =?us-ascii?Q?Iblfsv9OGoJ7a9FWkGN6F1xFfgG9ZNHA9aogAnWRgElR2q6RcAXUJVVFG8QR?= =?us-ascii?Q?Tf20MiH0u/8u8OTWQY1bV0Pp4EMlznoTOJfdQuoa36K/h45taYrjac6mDxnr?= =?us-ascii?Q?eFxTT5TLNwK/WiMvnRrKPFkOZsIrNjcxzJy+yCkdCW7y0x3ei1vZqFNfSRxW?= =?us-ascii?Q?c86B2Cs/7D1L1Dqv0XtJqb0nyo9RTN63z+WrfT2ID3Ds0uRexjtdP0qVLXlT?= =?us-ascii?Q?GILOkSXLLZ3fvZxUK3QFgVw1PEar7D4EckAYgjMT8MwAQFSKdAeXWiFOhnWw?= =?us-ascii?Q?XoHKu9ceNimzwds6/ILfLDVj6ba2wn8HgARhZOgUgP+P/JJpTHLUUUzgDlKe?= =?us-ascii?Q?RacBfEkvRM2JhuzjuCnPa2X4AeoAaNDwrhOOMpkqzOiAEUq+iruMnlYanQn2?= =?us-ascii?Q?JiUX4k0tH/1gjHv1HRipx/QOVA98c6c/lmlpUiwF5lLZJPFdiFJfW5/7Y2Ai?= =?us-ascii?Q?iWjHyxBkIsUYSVY/MSD1OD4xwMqx0TRny4n/RCKRLpLnYamtIuUVBhlmZJsg?= =?us-ascii?Q?O6vQ5PGqAofN9D6Mr71Jypp+gdQaO8wt0hpk+K/q4gMSaQydHhQCHT1Dl4WM?= =?us-ascii?Q?Fqanr9U0KRwPPAKdlCIMP8vAIE6drpksN1JkjSwAe/+5hKAsV+RT8Z6uYX9+?= =?us-ascii?Q?2ImRjUj3n571oRgwgGkymlN944sx0zmR5goc4X3n9mPC9BW+YdWgJbwZQUko?= =?us-ascii?Q?0ilwtW3GwbEu2gr5y4a8Jztu0Bm8nlGCtLnz0GAKiuhGD7Md5rKvzxsIIRjQ?= =?us-ascii?Q?kOYtMEW7pbtU360ta0iR01VTDBTpDMR4B271sfheJWk4yRvKJ+JoNYWzw1vg?= =?us-ascii?Q?iGfE3/VbVra9BIOebah0F+Lmeg8tuK15IYnC7hYMtx9UQgr8KOeYPWnYcPbB?= =?us-ascii?Q?KDy/0nFDqXCVD72ICvbcVYCUAgMPOFKfTE1SSS6SbrNCxyfLtQiSpWU7HqrF?= =?us-ascii?Q?PVLabtM7WkR/rM0ZYNS9dVfK5BkOK9n7RMYSz9UgtFZjaf6ueed97G+Sv/WJ?= =?us-ascii?Q?TAV8XqEkMp5YubjAmyVpK4C3QjWqlCGAVQsnrwAEkPlk71m6QLcjTqAdmGWO?= =?us-ascii?Q?qGm2uFR2y6gRd5ywBeDtsl3Ho81xJYFtiTgpqMzkgFYavq71lLgxqKEkW4wd?= =?us-ascii?Q?dCJK1vWeD9JgTVJgzvcYRrNh6PIbrAjjPnMGcVqgafWWrFFJbGQYMtXuZG2U?= =?us-ascii?Q?4nDmeL+FftmQRqgu/Vrtq3Fbieo/nDcDIsnxpt5N9keYZIeBGVKBtDuFXLt9?= =?us-ascii?Q?lZ+aGVcKST+/AAipI9gC93U6SO6q5x5HsKS4K3v0fJO9u08UYSC00SM/ggMJ?= =?us-ascii?Q?CBwB3dbEq4qPhbGcIL+FNye2EF9XT3iH1Ndq7+sluxoTxjOYcPMLvC3t511A?= =?us-ascii?Q?j5YRN7tZTY9Lq1M1P//j6icBI1JAb1XfudUckQosN0iUGIjrECX5HM+V66MZ?= =?us-ascii?Q?R2NOCtuDhyUiy6o/2GIRSiaMxZin9xKKvgjOApFBFED/ytmQIfJIgJZ0L5Gi?= =?us-ascii?Q?xL3KBr2OTmQ2rEKt90CA9L98g/nLLds7geNIxZKF8jbBXP+BupzHKxHlmRJC?= =?us-ascii?Q?EQY7v1o8u96lFK8Mj4jbo9aqbmvI8BHO1Cca1NPHyWPah1nqEAxP8oA3nWCB?= =?us-ascii?Q?H0zeWr+3Fg=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f85340e2-947d-406c-890f-08deadf5473c 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:03:31.0416 (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: 6iA30GwnKhuYcDVcJVgRF03JC4sP9z5LqEQMgifQrn+EUbOnMmpuo2IVtIkcSn9cLP0uqYnRyPtRFADu2VYNSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6039 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