From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11010062.outbound.protection.outlook.com [52.101.201.62]) (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 9739A2F6910 for ; Tue, 28 Apr 2026 05:18:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.201.62 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777353488; cv=fail; b=e8bkY5WZjx7j1YMcXYGw6ElViJGelxePM/W+62iFZi+D6u89wX3r8HuK7qcaAIcNBKRXx4shhFv9Bq64kc/esqOmF4K9rG/aBoWCS9RLBqURmw1YcE1s70V78aQNDBKPF7wUPtzVh5HyFj/f1vaZBU+/P7fEaOn2e3RGQkq/FX4= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777353488; c=relaxed/simple; bh=E6ML/kkB4eK+dWnTPckj96zb+1J5xt1VvPPAL8KUxQ4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=E7yf9yxR0Np3ttxqkEeJnuaZL+8BvBFLsID2nZo4EeztI9iWXpfyT79yJEZAb2XJiJN0CqSbLm7R5wiUyHXBwWy4/zW9G/R0ED47kKrTB8iFbZggd/dsvgg9J1rB7tfIIWQDH/tEWWsV4HusyBlWvLqbC/whMXWixY3VLQq/8VE= 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=VQ9CLIE1; arc=fail smtp.client-ip=52.101.201.62 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="VQ9CLIE1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LsvBs0Ca59MWOX4kmxgVyWweBs5+C5RtOOdFyhbHtwHsaF2jbUPszYXHGjb6XmkPIuNx8VD3MOssK1vIDZOeDG5qKuqYfft6Fq/XjcRw7gKHQd2cs7Gc3gj5y0MSzb55KnZKMmCvBhG1lYM3b4yKFpqjRwRhpIMKCdWQahYIDRTnWuINrfA1A5UBQXn89kKBxdtyXu4G8Ralox5XK1G2RoBpyP41mDJOoGwQKhKYuUiJ0PDxKdEJM21XkSfEhohfuVNH1PbJmokKkva1np7R2ZUxDVTjNWjKZJXZIHyZ+JuwXYTX1vAJ8SbhWK//1UxLYgtaK28tyfludKum9BIetg== 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=G6jOaBnclB3JXdL8JgFIcFLrFkEWDoTvuAJFSkh+fKc=; b=Tui7kKR1dSTjM1DayBKivvMbw3eaQ5P62oG3Wa1pPSfAaYKQW/+3+aOaIo6GmC41wPS8DjRkiq6/mKxKgoyHAkYoPrIIjJSq2cKPvSLtOn+ijeNTcdaG8pxr9ZXK/rOUcyB+7ZeSiBaTBz65ScRN3MR7I4mg17G8ClO6oPNjESgSpQewlIhgGzsxrYVNEyuJ2ICVYECkOWYf+XScN4yX1VJwTRI184fPKHqm1UoCU+EuQwSj8JBfy83jRK/idkIzEmJaWunbetwBelg2QkvE704oTRgWyHPzUc6FVMC5sG/mk5rCtR7uwyI36rWXryHnGGA4hO7TJMdYX/vxnkJ12g== 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=G6jOaBnclB3JXdL8JgFIcFLrFkEWDoTvuAJFSkh+fKc=; b=VQ9CLIE1HxLuiL+P/P7iMguRi1piZgP4kAuQbb1lw+oCdlFqVv9K/b2xhSSQc6zeBioPq73S15DGP1fN8cTW+ym2m08+S8CzZuwA5H2Lt2dqjSosl+MV4gtsAUVQW5LJ7b2Cg47HMTThW7hIlx6/6NkGe4P2jQnGhpIkE4ocenY4z1WzrDPV2QQsWV65whyXwNVmKNDF+G5P5b/0tIC6gsnS6Hmb/uAuryQHtKjpwcfvYzcFAWg/ONQ3/MN3z9wlffqkRdcfjm6fsk5sXhYt7hQYCyXuRFzyCZMaC9KZA1/YJ2/9IFQfqbn2YlH8YG/efgZeSXAFuq5pIE5pnApmPg== 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 CY8PR12MB8337.namprd12.prod.outlook.com (2603:10b6:930:7d::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.16; Tue, 28 Apr 2026 05:18:02 +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 05:18:02 +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/6] sched/fair: Add SIS_UTIL support to select_idle_capacity() Date: Tue, 28 Apr 2026 07:16:39 +0200 Message-ID: <20260428051720.3180182-6-arighi@nvidia.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260428051720.3180182-1-arighi@nvidia.com> References: <20260428051720.3180182-1-arighi@nvidia.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: BY3PR05CA0021.namprd05.prod.outlook.com (2603:10b6:a03:254::26) 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_|CY8PR12MB8337:EE_ X-MS-Office365-Filtering-Correlation-Id: 0a768312-4c6d-46e8-b023-08dea4e584d0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|1800799024|376014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: /lusMfm5D7MpdFoJg7DpzYBYAWorBg9N7iua4W9tZ7OEhmiMl2BkXBbCxlHyxaaGb1caxFUmY9mhEtHJam3CYLUXLhhFYS1HRq3mTe9PALmN6ufh54MnD+JOaF/GdMDpjcAyFMVmnadwsMCL1buu53gIBOtLjlc5GAhRaNeM9WpkUqZxcTxL6/j1TAT0K/GlKOnLxBXAkCsVRL16xR77CtO28wgAjzG7M28mDfBCaw0RDVkmNZSpKrKEp5dtKPev2L7ji7lbz0FL2gW5XVR2n9wwrkMh+WIn0kSs3HI80CyFW+U4d1I2mXtWcq4m5CWNpLWMwz+uOQH7XXwh5bZJlu74PdGmqdai+hoUoIPdg6PVvp+namiSj+iejFAS99F5VfgPKvSxR1i/T/S6/DxIymxDdF4UHia5Z4HL3T39jK9XTJRe8nr/gqDUzEumwE7RD9LzfKFo6gD70iMLUyzP689ocG3yy0W0nMgwryAyZ+INVUkcWzhWcbL7SsE26dXiOt0v+Yqt2Lp8+9qnKQ8nlkccpLWBTnFR0epDWoi7hAlFC1b//g1cJazGJhtY5RzB/ObVr1LZbWjxHlavxfugRtNl6BN9fEMrUhV7uVn2C9Hx4a/OpouTNbxpgTJFkV9sB3eBfDicrVpgfdleeV2j7s4TX0KuoQuZgOphU+euFM5cuZRZm2nITjnFzsa5Igl7tsKfC+8PdUFYWvQlvnjWzynHc6jwMY3YdcMmEDnbSIo= 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)(7416014)(1800799024)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FYZbzT4FGXKwN9ziBhBNX3odqmYPN8mO+LEZR3Fm7KU4xsL07SUbc2N4VkX4?= =?us-ascii?Q?rK3BVn8uXcFz2sl4c+m0YgLRNmQmClqwat3pN3lt/vbg7guk06jeLZpWVRwi?= =?us-ascii?Q?NjHFFKSMRLjnGBhdUIhmnbSkXbgWs64Iqdtivxl1crMook14csg8ef7PNuTL?= =?us-ascii?Q?u8RGRM8s48qbFa2Icf6yjeZCjIwzeKqG/MvTBhncm/FR+y8dwENf2SLxdvKU?= =?us-ascii?Q?TDXK8Md2oyGxkRpssYvWhOWB1TxpF+Xf3y8yFP1vbzJJ8DsIK8k4Uj8/H7cL?= =?us-ascii?Q?5vB+26aoRPVOGoIsXnCFF7NrnaCP0kOYzNUaOPCGWPCEAOh8kv5vDG4lY4vN?= =?us-ascii?Q?hrOPLYa5+9VAAzp8SiweCUYOl8oYRXdDG7j+/Cx9G59BP/tQzzeni7dOJ6Jy?= =?us-ascii?Q?SR8Y3bBFKPxQHic5zpgypoJ+cMcwMiFHSInquj/Ox7o5emeVch63IpeDnL3F?= =?us-ascii?Q?UDUmONPvHf5FcO6NulKpkGbe414gZ/ZBVhAinMNRnd8KdbjqsGc7T1dDV5Y7?= =?us-ascii?Q?m5okuHe6bn+crpOdhAVFbF1hCeN3ghmB595Hx2ALe7CC9xusNUa6oZE+dXAG?= =?us-ascii?Q?JQgvKVCHr4vLKzybtYv0KSKExTO18jz++BQnFrBwuQDfRfi1Fk8XG0RfpNWU?= =?us-ascii?Q?w8Kf66F38k5TqVQyG4/u8JUHq6wxAQU0L9wnYjYAqYYEf8Nb4tf1jcHRyBPU?= =?us-ascii?Q?vtDubRFeJvDk9pWXiiktAQ9QgPTR9AXIS6KP9Z+CC/A3ir/nIKj9xR6xAW/d?= =?us-ascii?Q?ghlY4QKvXRNnKtHvFlv+J3gXBf5M3h0fI69tlY1q/e2lfITiRTgvuE6oYZRa?= =?us-ascii?Q?RRfHfWPKUn7ncIo1aVpINERiwCOaf0bNNcBGgJb/qBSSv12CpPUGADlpdADp?= =?us-ascii?Q?cjeGaiOPjQZNRIOr3Xn9191QWqC0gJlld7QSOK1wXl4LKiiwL2JB1ELE8bd0?= =?us-ascii?Q?X/NXM8yE3RgIQCf0mPs1u0fr4fqOKRUYfY++fJKD4472HBbEfF6rB1cVyJrl?= =?us-ascii?Q?oHpurHXfCuMUEi6lEKdninCVuVSXwWiDYeZzixcToV2mJZ+0ZtLoNEDpLhV8?= =?us-ascii?Q?1cq0WSFbySLlsgzrMnkOeDO0oajuaFrVoxayiIfVuweARRcYt74mJV0qvil1?= =?us-ascii?Q?1Ecc6lTQNsw0ylo8QGe3I+oNb/sHqkTO/h4POCfjLk2hvLF+c+qVa2LgJ5uR?= =?us-ascii?Q?85JyTcO2bcooY0qXjFa2x+sjRF4YRsHLcgwv+ZN3/w0i5W8uqr7n35M3IYYZ?= =?us-ascii?Q?4MWPbmHM21OEIOsNxttCDO8bD+bAwqJLls2X3PsOyih5518YkUls/Ggk0SGh?= =?us-ascii?Q?6J2Diw9w1Vumu/NvRUovvEEWX6FWY3sKtIFvyrueR3aKyPbYOOY/wSSw0S+h?= =?us-ascii?Q?aP+dTkvDTT8q89YIORDygqGNVtmpD+N83qKK4MBdmM+XyinRi3IDAKhLpF0f?= =?us-ascii?Q?MCsyADlJuIrLD7563lbVUD/j1HpCv4w6o9mQSTJT18WJ2hVuiI4wfDZCFtqe?= =?us-ascii?Q?h4xcC2u7Tjl2gNvHnUMgzGcgEtLlxnjp5LgLdca92UZCf8f+k+uX/bEfptOn?= =?us-ascii?Q?r+nNsOaS+4iP03HoMxrQkH9vAAu4iyuHCfn3wCdR638MaegQrgQVllz3yuZf?= =?us-ascii?Q?PtP6RSogHz2+AtrdGOOutzf7cMfIADXsuA4DSSp2ROFAt+XDaPDpVyzPvaho?= =?us-ascii?Q?oVL6sB0CovYIvJFFjYzUENzvRDXxR8wXbs9BeZT/pIX6uggjkhg6Rwnb6USC?= =?us-ascii?Q?N2I3w20pzA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0a768312-4c6d-46e8-b023-08dea4e584d0 X-MS-Exchange-CrossTenant-AuthSource: LV8PR12MB9620.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2026 05:18:01.9684 (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: HANkBMRKFt1bQVMSs6p7v3aon6yj2lvHeFpjXiYxkfCek8wuC7vKPaLhLdDG46ygzC3QijEl10LrEQCNSETPLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8337 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 3e61e1ec513c5..01b95e3b7c50b 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