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 8EBB73B388D for ; Tue, 28 Apr 2026 14:44:49 +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=1777387491; cv=fail; b=T0iWi4iE8l81sEBMTWjeaeduSuSoKX7Zr7FJyJVIUF9bDCNbfE2dnZWi35Cg/sAP7kzF0G6nIYqhVSgg1sc/5Mlhc/+/qFWTna+3mTWrFSf6/vgJGDd/d8hCKHeSRdU2+C6I9O8vlZg0v/FVj8c2nwKTvq6NeUdCc8q5TmuySnc= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777387491; c=relaxed/simple; bh=OeNLhQtE7q4t1bnC52/oooHeurXM01B3SiwXssEUHPY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=tFUgxuOmrcpBd3ecvAETf9y34XkepLwd0vCs/bX4jd9nHtf/OMfFQ59IMdvrb9GRdpG8IrNQ5IEoAzA1L9hnM9ga2gB4DI5FjINt609oNahtBCdBPZdBsaAvWB/3ZYn1W+V1jfUEAUoUok6GO47OB1OxVXHPrz974Y+yF8ACbHY= 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=cZ9K5EIw; 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="cZ9K5EIw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WJ4SPT/uxo/QOIWLgcwCtKfiFfAXXp3a5rcIvKapvkd7m32Y94VP8yZlFmD/9oKpGBeEw7ILd91iZivbVgD7Y5c1blzy4eJ3tyTUBrip6vUsTxvkZMAumxP/+pqS+8HxFwvuAh6Otv04As+MRsL57jPTpbfzefEhu9Dp9ZO1PG97ghgDqCUljz1F3WtO1EkpoOtVQSqy3Vc00sELPN1fJdbnID7JLPKDQpBLDcBuUC3+6rMZpt9coNWzRlekulx7IMgio7/786f8i4BWq9Sux/yHnBt8hZ+KGVAfIVS2v7gOW93Ei8BHxaQo0juLMr4ibnt5CDubsPHfuVbz7zytRg== 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=LjG0kGXDNZU9aUuqlELgT0df1tEDSfPaVJuM3cygVUE=; b=kO4CN88jmJJ2o3T43yefR57uzh/MLxzGUoiMAzIVxTlIumOpPCGq9UrkKhDYvxm3pQUhbTcsAX7DG2I1glj3GpGgT+gl7n0GzM+ttDo3UlbNDBE0ZymPTkqw3dMsTpp8E3PhK4q/+R2/Pqmqy3Edlt/UzOaSli82KqV6wO3F5HHyjav6HLBoEGusgKkI9+JoEEity2Vdti3236xtTrKutyq29g4GoWcLDDEo3+XQubilCOHYaGilnqRskUTdtsWdPj6maxF2cTgirRH6if6Da77jWHoPolnjd6r35UDoXLaztZW5Vk8/XgLxCvVjgqBCYve3dlo0XG1UbUbq9iWDgg== 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=LjG0kGXDNZU9aUuqlELgT0df1tEDSfPaVJuM3cygVUE=; b=cZ9K5EIwICZBLRYEUi9dqe3Ox3CCkEy4V9fI5P8IGShERytGc5ujMDzs8Qs4I4qQ64rJthqH+Fw7zNs0C379HUhFxfG6+7DdU1Z/GKETmhNGM0JAIaakxXV/78iL8IbPKUvn2zInAhGk+o7Lx99+xicnylH/M/ce3XE34U/YnKZ09F4MVxkMraAtDmOGulix0/SGHx/miGjTeBZpjj/IaDqshBOWvbXAQAk2Y5QqKDdpDjQGuIkk5W/rMHp9qAaZ30O2WXAIOUq4BB1QHW789db6MVSVU8aEuiE9qnzSpgGJvwTivBR9dOwC0ufuHtIOdwxtvteEas1w1EGi4v8MKg== 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:42 +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:41 +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 5/5] sched/fair: Add SIS_UTIL support to select_idle_capacity() Date: Tue, 28 Apr 2026 16:41:11 +0200 Message-ID: <20260428144352.3575863-6-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: SJ0PR03CA0348.namprd03.prod.outlook.com (2603:10b6:a03:39c::23) 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: 6744eef6-e35d-4a99-376a-08dea534ae61 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: Z18ghE6+sgR6DaX4CkFHi7bA6F8URNu3y2K18lnP+7VaeAxCDZJch2iyxSvb2puFJObBO60TMsL9oeZLcNsqfgOjNRHXBIJHUWMsoGIvK0KtXiHcUbVx8peLEQKgf1gRhXHZBh2p5ZUuA+uTc+5P5kwdO76ji8VaA+gMLhZWHOf2UJx2x26oOR9CTlS8MLa1ysiasl/eg4OA4Ut/SecMnwlBwrTQrxCyCrqx18/9jag4BVfHsfwsap1q4i7Foq18ANNsoGz7fnAE88XEYJWrweSkkzpODF7XaLQNgRY6eDdhrElqGpWdE9b07hYSdog4DzH+k4V1rC6wyegRWvd9g1xHdQeCsmazY/fn++RjaRnZmwwYteI8SfO+fBtdOSuBoH7LIvz6gcX3plRH+k46vjgytgGFF6O6YzfgHewwipsyuh3EAfl8HxEiZwO/ggOMUnoEJ0YhvV7HiXspfucdWIKuePdLsAo9z9VwgRVWgyZQINHkPJgi7uS0dJjmASdOKglK512BqXJGk6VhYlUVYizKm26sW5Pm0G/uytCRbo3I1G0kYMIOkGz/OnOHHP3Gz8PLG7PrIifBVyHsjDqFBt6FG2oYiezg6pgaK34Xp1FVTC2mCfojMsQcXWgEnd6/x428I9cnAQ4fp5EcceRSKhh5KqlSMVHys7DG4l1xYJptrg9dc6OKNiQHhcHDnhmjkOzyC6SCe8iP7Cb6OMyRBvVhBfcK8SA2fohniau7zTM= 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?PwHJIKtrcXTv3dEddLqGPMKcF/2sXGfDCX77tR8nZSFayj8aQ9+IYRx+hEPb?= =?us-ascii?Q?LX8SOfJNQqE3MEHdZSLQ03vQs6BIAPhP7XuPptUbP72InkzMLvJqCY+cgYvm?= =?us-ascii?Q?cCV9B8Tc1d2l1riPTtwzrE6XVNkwsfwL8mJP+HqAxZdOleigMzoQtJfbnvyn?= =?us-ascii?Q?/xSukV+tlsvMObwjL0Ngp5UGIXi48eLs/bIQsCZiGLobgQ93ZO38OtJKBaCr?= =?us-ascii?Q?SCru3ystlyhjQv1CgDfKCS+MVcYa2gPPvS6I7Tkd+5gvdBOjJKQvqTWT4J64?= =?us-ascii?Q?qv4Cl0DmzeQ9aT6dYpCt3KL20v7thjOmOdjH8jtW7GcXHYal5DbfbMb44KUo?= =?us-ascii?Q?GXCZ7zMUbJ48wtvFgKauD+TORDaMueF7y6FHr7i0RPOxtKYw2K4znE8HWLPz?= =?us-ascii?Q?5ah/UchgPQybY3nRVWIas5qoO89yDqIdNmFI3H1ZWnb5pzQyWJNI19xEErIs?= =?us-ascii?Q?ziV/4kVI/lBLa1Qqrg1CtYaxnIBeAGL9M3pjUk/SaMEpXabRT4dyQdftcT+m?= =?us-ascii?Q?2bGCETHIHKM4p3bjJBlGkNqtFawgvf0sB9ETyow96Bc0fHD9l4csWqTtZpbD?= =?us-ascii?Q?wxmDMNxyz0OaiCuDPym9n8NxZCUIoInVYV/JZGUehqdCKWge026hlZTX3pj4?= =?us-ascii?Q?/7YfNlM+ohpBNB6xaOb8/4w2iXoSReTOl/vKU39U9lIo/LllqJ24GBTUUKDo?= =?us-ascii?Q?mhFA4mveK3gJ19nBQhdh5zAngbqM2ET+Mtg3Ng89Lu9HhLSmHRys2WfSbhO2?= =?us-ascii?Q?FBDpHcj7pdjsfPa28ZKDWMrNq+VGARFZ501fpb6XSyeZ/+R9HbnyNDNtrtHE?= =?us-ascii?Q?FQmuY5qu/1DUwQ3584PVQxPFR4rNgPtfVA8a/mqZoaeD5I87JoYDuuN1Tf2A?= =?us-ascii?Q?RyKhJAQ8RgmlvKeu4rh/hgGr/p1n5ESnQ1nIxpzWbbBUV/0NUalyVPSXctxQ?= =?us-ascii?Q?EHO9Sky4kHK6tZN6Dj9UlZBur11AGEjKnPBr2n/+P2tCvK9rM96CsGYrDurE?= =?us-ascii?Q?3y6M5HNBPVkKh4qbpTF7N00eA/rLbv5337ye0JcmUiEnezdtCf7Vi4zPh+c5?= =?us-ascii?Q?NdZjo4HyA/UIVY5neX/zaRE9lBMpCVesIIfXZbxWWYZVnmWiPNiGpf9I724n?= =?us-ascii?Q?NKUrmsxbBIj/FwB/QFM4UblggRwCimjT8mbdOK1uWrj5DmZimBWA+QTsBQHe?= =?us-ascii?Q?iwIp6B1iODy+l63wDBJ85PljE1WSEy0Z3HqnMHchAdA86TE1fuFGTDLdOlkn?= =?us-ascii?Q?UEUPvOqk4fuCdL38kR8Z/pBKwgse0TAdQH4DTsbUdCKc4N2BaF8MlFsml7iH?= =?us-ascii?Q?+PXBZOv0w1HmDnKTbYj4jBiw/BFSZz+kuEP8dM9g8+PjAbmRCDo6/jlVIk62?= =?us-ascii?Q?wWy5RNWBl4+Kmk9Ls1FkEdxrmOypW0XSQ0nP9xwWQQYnVn0+9TOjI/sZ1LTl?= =?us-ascii?Q?4bly/yxo73QpMd+UyrM7KIN7QwvQI/ZvJjxj8nDDF/gcmg+y+MBUnHhiKoLw?= =?us-ascii?Q?9Thx5ZOQYP3y3so8JzACC5d0Sr8xwPNGtsKuBbPiV1tVlNi8rX2N/O375Xcc?= =?us-ascii?Q?GCrGWzYuyYW2lI3t5nUUS8QYmliCkiQBeDR0m0Nwc490C4fWTStJidkd1bOV?= =?us-ascii?Q?eLiMnF08Nlely8fIBxlSvb4EHk3gdJZ1Sj2RZltBhaOAhiGRwX7nGD05Pvw9?= =?us-ascii?Q?EkzVTO+TwGqEJdIdQQgHdBojMjOY/W8HsUkeKJItitxa01rimdLXoR4ozu/d?= =?us-ascii?Q?IGEH3kIyLg=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6744eef6-e35d-4a99-376a-08dea534ae61 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:41.7173 (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: +brYXtgOVR44ufelqgq1HXKvn7iNfMZBd7y6SBbrmV3Ljq3Yb4MMUdVYjaARdGO0XnUnA8PCFph0kVf0HMW6BA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6211 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 and allows an early return once the scan limit is reached, if we already picked a sufficiently strong idle-core candidate (best_fits == ASYM_IDLE_CORE_UCLAMP_MISFIT). 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 a1f4d70f6b3d9..1cde3a9b1e0f5 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -8018,6 +8018,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); @@ -8026,10 +8027,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 = !prefers_idle_core || is_core_idle(cpu); unsigned long cpu_cap = capacity_of(cpu); + /* + * Good-enough early exit (mirrors select_idle_cpu() logic). + */ + if (!prefers_idle_core && + --nr <= 0 && best_fits == ASYM_IDLE_CORE_UCLAMP_MISFIT) + return best_cpu; + if (!choose_idle_cpu(cpu, p)) continue; -- 2.54.0