From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011010.outbound.protection.outlook.com [40.107.208.10]) (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 3A3FF318EC7 for ; Thu, 23 Apr 2026 07:42:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.10 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776930143; cv=fail; b=k57rPJIjePlY2qbwpEBB/VMptOU5XCfLjvHA2vd8GGLhee7u9HWUp7pkUL5kzlt6WAXDiFAj35hxcwGI4WX533NzJzMX7d7tUkBbapg7PhIQ5u4YKI3sHDUu18tTxj9UlPw2u+y6T1aXdDAikyx1a+XKTeFYi/fqUq1n13eWcOk= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776930143; c=relaxed/simple; bh=D0VdJpQvb6kd8tDeUdvs8QeBLKMFQxI991RK+6Mww4w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=M4XJxfhOCzxTf+g6Gl1fu7cO7UHzqFL/t9Ymohqs+p48wYOGh8ej9xnThcM6uZvusZP2gpn0umfPe09w9wvMWESgWtjb07eR6wwokaoppglWnRi5+tJGSH8DD4+nlv9p7gegI0dvl2iQfcGCh3nqdNBEd2NBF7x+IsoX+JTeTRI= 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=kkLM9kmi; arc=fail smtp.client-ip=40.107.208.10 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="kkLM9kmi" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EIv0XlsIwpOYrsXibVvDVlqg3axs2rUlInYnhTrlMQRsiShKr/73cbnmiHFqCfpV/bYRzFN3waINXeWKwUqSTVfI/F4RJneODYuvIK+y/3Hc7Qe8GAk0/wcmTAiFarkoLX6uIKE5cq+hGmTTEs3cll/RFqVijqaPnHzOr24a59SUVicqco98FxYvPMosu1/W/xKc7jlfLq6cQo6tGQqMLrhaJIMvS01CM0rK5aiFLA4A6Rkb5CWuwB7G1eHA6A45t4CjrDn5308dRcD3h3nPviGjOwd82G/Cv48ua9GSXcXoa5aAZ+qABczXc5dirpQ2EuPghl+GoWhjt/C+0CfKYw== 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=rnKZCr+CKynR5sVFBMuGcdYlXdi8ckSGT73RYZ7sQlc=; b=n59ZZwU8FWkg1bSEGNmw8fcUJ8vMKB7rCSbZ0Ik8fB6iSe3jFOcB39GgxTMzkwXFiJjMzj0vLJXPU/zSkD4BFcHEvoPnervE/iQtjWtzr6quNFjMEOBZWn6nSjWBVLAFQf6/eYGXIUb/GDkPHhi5ztqsZFhNi7Cuj+4AFPHhx/SdMLJlvaFQhusUX5V1zhC091nJg303IMn9NiY9s/0/HyKW77QfZHaQ14kXabSL+zfRO2h0MGRLmE6a5Pnep9PwyR/dwaoW+CvDZNRGULOnCsFkGfVZu8w69S3EMENHQfeY/kvIFKclDnJi2eq0qdeTexjtV0t/CJI+OkMrPZOzKQ== 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=rnKZCr+CKynR5sVFBMuGcdYlXdi8ckSGT73RYZ7sQlc=; b=kkLM9kmiYHEqPaLshoUxuDOefqgvuI/TcBpQtthQ0vxd30fcDtFEu5+nvTo0nd2cWhGjKmlyjR2rlouirZGyvxovnzvsTuOTxAFY388B+uEGucFIn7q8IcWk0riK9ijeVKv0IqapyPyq7yYkCrt5vzb+vhZ6G1RUnkItF821C2i7sjAWoFArOHheMQqy2yk6WzwEBUfvAOQlDABYApvasaN6oTDxf6sZEm3zuIhDulOxvi/JwwYd25lk9qCQ/dPxWvvZy9Zgw2nxyqsVtHUp3435SH721mH5E8kD7wNL+ijqy8fLcHel2MMPe+zToJ3WUunoteJhVTZcdYPGb+ZF4Q== 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 BL4PR12MB9534.namprd12.prod.outlook.com (2603:10b6:208:58f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.21; Thu, 23 Apr 2026 07:42:18 +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.9846.019; Thu, 23 Apr 2026 07:42:18 +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 4/5] sched/fair: Add SIS_UTIL support to select_idle_capacity() Date: Thu, 23 Apr 2026 09:36:48 +0200 Message-ID: <20260423074135.380390-5-arighi@nvidia.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260423074135.380390-1-arighi@nvidia.com> References: <20260423074135.380390-1-arighi@nvidia.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: ZR2P278CA0065.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:52::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_|BL4PR12MB9534:EE_ X-MS-Office365-Filtering-Correlation-Id: 58aa1e32-aaa6-4679-318c-08dea10bd8ac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: Eb9c+1n/ogFPVst7Hye+5JehsXb0fqBvaRfCHBL0NX10Lk06J6a8ZyooOAfHkok3ejL+P9SRt29IiEsGabipV8KCbgbYffNH364t8OLkWwJe7psbWDNsWQC9lgo4GppnpB4ZiHWnoEdJ0jrqq06Aac5/aE8Hmx9PvfYREOqVQAz6+cYC+4M6o3P44g87GV3oP125evJWLyarz0Gc6R9TMJXbC0kZ+ffyszfGx/xV0JbnaSeUht118LrI0Eew/niQD2Whj3vNWdx3ld6AXuMMLtuN0WzA8nMXpUmkJaLM93LJh0egIZRfU4TMD7QLg3JjsxOr/ZGAoD1q8ZhgWOj2hNcgFaPrgz2oWMnmEvv+O1aiQlN4HXuZqEky/yT0r2nEkOpx3LSEd+a1R6XR7sHpDEirlHad7EikJ3eq2l0Uo0RKZPvlrMTug2Ie2j/1PLIdObBUIggAKIIkyDxqngvgNU40qbcWYK1gCv5yxey/KTfAzEpox2JgHR8C26mnrOO+eAzDW2B27XO0RmRmGu1UVnVI6cwsR0dc/GxavqodUwjwjsJ9RUTkwPNr2kjograc5jX73yn+HR/y7Zabj/2kGBCDvYiB+DrfHCzWqKOCg+IbVwPoDIa6Cgyy8N4tMhz6ID532BIyFA75uVm9RGjg2XsYYlI6sh375eMoD85BeT3xjWxZBBaR6pL6DrEyEc8MCA7cK/SjaMU1lvRMNVFsMHjszOekAnEu2OxIgXLuLNI= 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)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Jl0q4VPr/t5IwWiupNdPLITGWBhRGFenZn0MwBHTWHw31DSgRKpS3y+BLj/N?= =?us-ascii?Q?jyCW+Vy2qA0U9SI/KcDZTjUKZB0s5H/NGkt8DvyJ4kODCeiSN3qVo2hv2Rwd?= =?us-ascii?Q?AKHjzR+ihwWYOkadJ10mPIPgAX8QQR+efNNGC1kUqIlmfIoOjUrOkam+dqmr?= =?us-ascii?Q?DxQFjS4MBKcaO2qB610Kmf53AGtMUEKbrwFdX5wW8DM+r+Pow/gtP0gNlz4f?= =?us-ascii?Q?9LhK7I7LMt1Dkg09jol1I7RRdB+GpywQL5mig4TD+tZT/NknqrecupQfVek2?= =?us-ascii?Q?soLRUVDztFAn/T/GebeJXCzw5LC+778ZWtz4ICGnUSPs1+jnfL4Rca34Ma/c?= =?us-ascii?Q?iQOJgx0KwAFC2om1id9jvX0fPuNvTu8VA3w9A7gpwUe6PqTUyoxM4a9WBATC?= =?us-ascii?Q?YPWq5jBUsqTvH/tEtr9SkRgjtQIXDDl24+t5NxncXLDQz9/YQhKm4ND5/wqN?= =?us-ascii?Q?lDcYjxXyz/rDVH44obgklh99d1UIfYrkOcj8ooA6TnFK2CUsSJ8BXns0gzH4?= =?us-ascii?Q?qRd2+brsz1oUntp8ao1uOcAY0Pf535o1hp53eb9ZeaznzU7st2jYFmwoyE8q?= =?us-ascii?Q?HZIjBGr/RULFJ91ZdgoEWbocjtfYo+CdWGX5ri9QNQ55SlW6/Ll4ZLwt1oJc?= =?us-ascii?Q?VUp52tX3APYWWisSVGNwzsiRtrYc+wC6uIN3D54UWZ/1LBJXt3myPGJBmqaA?= =?us-ascii?Q?dsnSAI/pFraWpvQVypkG2i7Zb/12iydHjIqQgJPrxrWuh6t/nMTyWxFi5suO?= =?us-ascii?Q?RH64F0LOjdWVpYxZgw6dj4OX/WkM0aBFi5MQZ1pF6P/w+8IEmHrOZdNyOHJW?= =?us-ascii?Q?35p5zgwrS4kr6HDzEiptVLVb/Rs5RL1USqjMY7lBK9wdBCdjG6JxsILpOq6c?= =?us-ascii?Q?lbvQ1kF/O1Ocd828fUAKyVbvQ+KPsFaIo0JJdDf5cSZX4/MOrUbsPtGvTP3B?= =?us-ascii?Q?HCuNyoKFnzOiw1tFzvucn8omGT/K0yPQjF2/8X2d1d4ueEWYjnDTE/WQC6+B?= =?us-ascii?Q?6/Ac1K/Eu9SUQkOfFyume4Tmphrey/rUVDVmb5qLAkMEg9e2v0cMsUNpVmJX?= =?us-ascii?Q?b5fPhT+85D4vyYU6MfLWvsemhSvsfrBsFb7Tq9vGWrOiQGamrs4BiYq/IAFx?= =?us-ascii?Q?bMTE+sbhuJl8JsqYC4EluJ6kzROygrD7FD5D4jCdVt+Fn2IsoeTxp244l55G?= =?us-ascii?Q?r+QIFemst/Yf5ZpwZPeWMUrLQkhQKFphOv/G0ClNsuO8qlZN3rS7BWr9sY9g?= =?us-ascii?Q?EfCO/y2U0pmvGccv8NdwYeHRuqin71WR8ykqphEgoKe9NTWkpvz2Z3tKSPd4?= =?us-ascii?Q?6SoOYbrjQSLRiTyPKYRiWG4OoXKzjiWmfuwiiywhlbamqq0LybY0VCFntusP?= =?us-ascii?Q?CNXu1Kkmkm+ywI8g1K/uPOs2QNKV3HSQe55TpnuIFVliimQjgncDWbSOXizW?= =?us-ascii?Q?Xm9u8URu2f02C/g3nYwDF9+vq025g6wDDfvtO/K/Px6jsWN1hy9IJQ0B4W7m?= =?us-ascii?Q?DzDffTFNCf+8fZxgozpMLKPe3OH3XfKozsdDGGo0mzMQxetzlCpSJD9q3vKt?= =?us-ascii?Q?VktVMDzNRXKA+lrOfpp2jYrlRHQ7nd/SqC5UzLn/7MifJIj1adkMyyo52oES?= =?us-ascii?Q?aIKotTxAyFG9dHS3zPwYGJ/ZfO2Hlx3S/CxJ2MCyjzlY00WKDO+DsozlOxH1?= =?us-ascii?Q?eZfok9FUfQwYdCOzgEf6kzYV/PaEUQDYBSicfvG2dMzPKkfrSNSpzeIlOdIy?= =?us-ascii?Q?cb0SzsuDHg=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 58aa1e32-aaa6-4679-318c-08dea10bd8ac X-MS-Exchange-CrossTenant-AuthSource: LV8PR12MB9620.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2026 07:42:18.7205 (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: IX4NQaf3Z16QXWTRIsXXI+kQN/p0RAZGGzWhn4kjNA6pZzWd13yoWgy0sRdpe7H70P2peb4E0VL9i2Ae2dQmaQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL4PR12MB9534 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 == -4). Signed-off-by: K Prateek Nayak --- kernel/sched/fair.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 9bd9dc6e0882e..6b67049f04c3e 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -8002,6 +8002,7 @@ select_idle_capacity(struct task_struct *p, struct sched_domain *sd, int target) int fits, best_fits = 0; 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); @@ -8010,10 +8011,30 @@ 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) { + /* + * Increment because !--nr is the condition to stop scan. + * + * Since "sd" is "sd_llc" for target CPU dereferenced in the + * caller, it is safe to directly dereference "sd->shared". + * Topology bits always ensure it assigned for "sd_llc" and it + * cannot disappear as long as we have a RCU protected + * reference to one the associated "sd" here. + */ + nr = READ_ONCE(sd->shared->nr_idle_scan) + 1; + /* overloaded LLC 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); + /* We have found a good enough target. Just use it. */ + if (--nr <= 0 && best_fits == -4) + return best_cpu; + if (!choose_idle_cpu(cpu, p)) continue; -- 2.54.0