From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011000.outbound.protection.outlook.com [52.101.62.0]) (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 D604D3E1220 for ; Wed, 6 May 2026 18:11:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.0 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778091120; cv=fail; b=DmAq7zEt2XPW8umPWdFRs+ze9yICn6KnvL41kzMugNSuC4LXqrRgZhLrX36vHG99ncp9U42jVhP4PsnOtcMW57OrIFUanJw92j+tAi0p6DNvKEJHo/e4MB0TaHd27QNSCcyVj+ylxSVl+7T6/XxwkQuks3btXENKYjVP0Kg4VNM= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778091120; c=relaxed/simple; bh=Uv9kkdJU15AAOfzTphhfEcp8fuBp4bBjI1i9QxhOMYU=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=C4y0rg8X/cOk9kWHCvNPNbkxU8jTiBYu+pHDfa5hzgv5GCsKzI/XQsyN2IbHQUMv6R7nplwQC4Pfeizd3m4luj6dXtui+27lOJEAKUGZ1GDOV40XamR9x9dzrMavCaLoLJ1O6Qmup8VaHUoq/m7dXYOcFfnoYBQbC4mUJD72SH8= 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=a+jevbZY; arc=fail smtp.client-ip=52.101.62.0 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="a+jevbZY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=h1qACwrsOZWvuGDtmAPgFrFbQUxrO7ysaB3WmtHGBCfEDauk4DWnSVQJnep8t7Uq6G/8fsrKlmFi4hRrIDcRw/GUIStwmGOhOihJhNHZIq4sACiK++DFVvsWEsPWyrC+oZu8FPRjs9SlJg/zy2BPOrgMctFXyiyJkn9J4Xk3dLNGyMC665KKsE4F8TJC2JEBJkCeM3LGWDZqKFsBjr5ZFXWUR4HIa8yi1aszCcXnSlO66KOQNbUOuR4vvO085PeES+/wAETXp7YR5DmNDMplb55T2bFMTWwcaZIaf+8/iTzQJPfDzQC6jwy3uqGAViAdQ0KF96AoquymGhc3viMa/w== 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=E2PVXEwv0VFU0m/MBHWMjopn9agcKvSfd49zradXhZk=; b=D9wGquFeG0PxJpDI0qd+EdbqRu4bncJGWkraf8AWeOlMuaY/Kr37tRijVhZLBgdIURikoKekQ6bQsA0DLIsu2bp11oet64hQnuCUfpLq0lxmz+sDdzxUuZmq9ikURr9bDEUzkFyWLk8nErH2K4Qo92T+TLfuEPEE3L6tQUe9k4ETWzD5dXq20/x0smZKZLK22UPKayKcPISv0QYaQa0stJWKcPpegDKEaA7Bj6B0s/yc8yW/uJ7I4JtHuZ6J/ff6gigV3HkpzEHYtPifGMAljUqjAhQoWuUZDkZp9fvrrD+Q8+4iffPISzXGFK+ABcr5IHM6ECbD0XN8Yel02qyPBg== 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=E2PVXEwv0VFU0m/MBHWMjopn9agcKvSfd49zradXhZk=; b=a+jevbZY3y9YWekxupa4GQDZtwfR3ikSiUi+4xFzd2CjygV1ky4xDeRFo3b0cDezGxHxY3Q3XhA/mVMPo1ybnG4BD5sJ1bmzYH/02udq+IVljbQFyIXsY/fOhMyEYgVDWu03Bgc6d9NK7RFW9nSSTmK1T1ity52l4rodocrZ3TEvLP5lEGvAiB4gJfUaOMPXDP5AyCDlchO1r63HK6JClfVxYIP5dRiIq9Zd5a0UyHLAaHCRviZ4onmJRJczAN73jXQ8FKKSSaPFy6ez8zunpEkdzI/hNlgj2psLjppdvESQklubbTdF5yKn2Sa5g8VE2g+exUfKE2UpZ1EXbQqVMQ== 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 DM4PR12MB6061.namprd12.prod.outlook.com (2603:10b6:8:b3::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Wed, 6 May 2026 18:11:53 +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.008; Wed, 6 May 2026 18:11:53 +0000 Date: Wed, 6 May 2026 20:11:48 +0200 From: Andrea Righi To: Dietmar Eggemann Cc: Vincent Guittot , Ingo Molnar , Peter Zijlstra , Juri Lelli , 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: Re: [PATCH 5/5] sched/fair: Add SIS_UTIL support to select_idle_capacity() Message-ID: References: <20260428144352.3575863-1-arighi@nvidia.com> <20260428144352.3575863-6-arighi@nvidia.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: MI3PEPF00004EA9.ITAP293.PROD.OUTLOOK.COM (2603:10a6:298:1::44d) 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_|DM4PR12MB6061:EE_ X-MS-Office365-Filtering-Correlation-Id: 5fcacb78-73dd-4c47-a37b-08deab9af350 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7416014|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: 5Tt3e0JtMyOecEw0pettGW+rLspPMLKUJHVK+J2y4alzMrqjfI3Hgtwt246tMr7oZkgTqIf6HwyiP2KRnjGIR+fI+rUAElaG9vJN+Ne0NFY9UfU5QAdk3/s//VdNmbjyr/nXS9WTGBUSUf+rsGLSRPD9H5ba38pjHa5yF28Vlej64q6sTDgzVtmH7+IDl+vymAMPOv+Sg0tanqJJTo/q1LI9Fa87o+4SRk64eFoxtVstcnTSbqt0/IaxJpMsaddA5o35wbsySulDnD6VCbuqeViWIis+ZCO07n9LSed7g4rHblQc5u74pzaJTCVkzJUsnhpvbAfj2FsUWJZddsLlpqhAyGYwksICQIBz7L3MUt3RrUNkxsD6FGknVX+qWaO97r8h8vO6fXbbAFE/l5hiQ5DVAbMlph0Wpw8wGEQZegdJKSDHlza0Q7teXxvwyHakrz7UlH5nj8K0KDSCTamGeCdhu+2rgPP0oitBPBscS55ZVCSq4LBzqp3cI2au7JU0jzFf4zFGBwloWm3MFgvlLyKDrbxEDYJ2DQ2tDrugxDyaeZSE7WmNzsWP0osz/YZOnHeTn9tXHtJvaA0U3fNZEVkooQE7nQTJDHwOoaqH3Vq5LeSyZHFl31xX9bwAQRFeZ1ERKmQcREwYKVh8hh9bp8Mlevf9sIGLZx9OVYfzEn7/nMmLRNOJiiIizK3QDXU1 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)(376014)(1800799024)(7416014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zTHsDdLPD+QVNYg10may6DK6+iTRyWi3Drdh5jYxvFFC3kIMZYNZJl6rG02c?= =?us-ascii?Q?hJhyNqRYdttWo8R8FemfWCXFU7L1cZjxHK+hdeXldXU2XZagxuAIjYf28G1z?= =?us-ascii?Q?XI0pKFAgyHxBpvI/UIwuvNVtOLmwYjgXuE9qQ4h3g+1AExpTRVpWdIWmW4Ps?= =?us-ascii?Q?GzxUVx2TG0PTqO8GBjlWIJhGuCWVBud/QpeCCm4vNWbIRdK8DYuu8pur9T0P?= =?us-ascii?Q?QG8Y13yRSQIye7eG3ePPceWm8Bp1/V07978IRWS3AAE5E1IdWbOwfg97Gm3W?= =?us-ascii?Q?x/UfGShMlJ4Z+t2PFGjuaFN7K1KtEpkAI4Pnnjeykxii1BGXjdgGSDWO3/oG?= =?us-ascii?Q?0XHEo3SdlVMY8Zb7EUmuR57w88KN1Zd1fUnag/t3guLHlwg8zZTnFfHlYdBY?= =?us-ascii?Q?t3XmcNfID+gWSJL1W8JabYKYy6a4mWqfmNqeLahRDGePCRDp16KQbHvmQPjG?= =?us-ascii?Q?U/zWviBhVPBv3XnnwHODNZk+7P3KO9bZ15QzWLujhogq+qsGpIeNy3hjJmKU?= =?us-ascii?Q?Tj/39wxRzFaxlULjG43NSiPZXZt1M6hUV1p/ARyyzRHRnPkhwPTPOQF1ClhV?= =?us-ascii?Q?OwVTNdgSEHf6dlRKYjiDuTf/m1N1cOH0OVHOhsRvFo2GlRH0czAMZ1HQOIkJ?= =?us-ascii?Q?TobjEPEMeagnhyTZHXM0rm6Ug+V8z9qz/gIq9d91LjgaArMS9igjhGkZfvzk?= =?us-ascii?Q?5vdcBJ62ugasJgaT/g0hz9qkFv3RLGdtxTrxYYeFN8+Bk9iqHo0NVwiLCzd6?= =?us-ascii?Q?fcD5Q5QtLit5gyr3kNvy8xTaPqX2YJ6cML2k9grXfqAbyT2c6ZACY/1T2TDv?= =?us-ascii?Q?MMfOFqALWX4C56ICm3+7A2ZZAmzRJY+OFdkb+yq0D+OL7z6rFg5wj0Qt0PGP?= =?us-ascii?Q?NgBuQPaVo/wMq++9a17Wj6qqDwpCiummizgiYKih1ASmwMos8cnYvXt4y07g?= =?us-ascii?Q?Cy+k88hufdZRiIeSUmljJyRgtCIWnonHKPlmXNvXW8ofhsMJJ0eDAyLnskFn?= =?us-ascii?Q?fqOErnnx1E+WIB0vh77eKx1YBX3cnFfLHhovOvpVchNPhJ4hMF/hnEgrKRe1?= =?us-ascii?Q?HOMu1v4Zz6/HhS7unmBB8aYjHTieqfMaUtcZEScjXUgUkmfNJKqbbwEi+X7s?= =?us-ascii?Q?y+5Ij1jZ3VtSpo/yYXrxC+BSSQfnvTAg5LHJV2nJkPt2/KAQRixXOnJUa2fO?= =?us-ascii?Q?CtpIIpAWx3tzKCtnFaBWcw1mVa8C9cHomESwRl8nZnQKX1CuVv1IZoOU4q4i?= =?us-ascii?Q?shStC/EcTXwcMoGYsYgECOyjYbdmyCIXxB/ddrUjHTIy5gta3f4uyWeLY+mM?= =?us-ascii?Q?zn5nD8KZaDykxfw5o/yYZ7nZQKm/I7NFttAuyJE1/SVtkLnMIaPMbr5Ktr/z?= =?us-ascii?Q?MD6h0FcAD1IfcQs1yyZmI6yEf8thrMAAlodpe/eGM6KVBwuSJhtwKKlfoS8+?= =?us-ascii?Q?Zce8wGgvsps2HhLX/Ak73qIDELs4Ni0fdaeFc0CwNxJdD7RqdFL5wMh81bux?= =?us-ascii?Q?KlzGZYYmKP19pi2TpYAmiT1FlPq7ft8hagBci+lYtuk8ORDwi7GmC6Cbt71W?= =?us-ascii?Q?AjO8rDLOc17YN1iGHZbbHMhH9btvDWd5TYfoy+njmsaVz2RUgtPv5em/j9OD?= =?us-ascii?Q?LMwivRBJOi0sBf1Fkbksyq/DhU4KY89yLE4yfDmpiiVJXoVA+8H3467O2T7U?= =?us-ascii?Q?VEUceQs38Q6TrJAyXHavLgi753MJ5+9WocxEhAOXEtWMsOu2q/vi8j8tRllY?= =?us-ascii?Q?dMKXdXab5w=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5fcacb78-73dd-4c47-a37b-08deab9af350 X-MS-Exchange-CrossTenant-AuthSource: LV8PR12MB9620.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2026 18:11:53.1167 (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: JjnQIS36LYNoXwwPvY08YaUnO+4GUKi/auz1ZfLoZxr7ykBfyFagLi9nM3zhvfzzEfk7/FAmJJoZVIsSqZHPpA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6061 Hi Dietmar and Vincent, On Wed, May 06, 2026 at 07:01:35PM +0200, Dietmar Eggemann wrote: > On 06.05.26 14:59, Vincent Guittot wrote: > > On Tue, 28 Apr 2026 at 16:44, Andrea Righi wrote: > >> > >> From: K Prateek Nayak > > [...] > > >> @@ -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) > > > > With SMT, !prefers_idle_core implies that there is no idle core; Is > > best_fits == ASYM_IDLE_CORE_UCLAMP_MISFIT really expected in such case > > ? > > > > With !SMT, !prefers_idle_core is always true and we will bail out > > early as expected > > I struggle to comprehend: > > I assume the mirrored select_idle_cpu() logic is: > > for_each_cpu_wrap(cpu, cpus, target + 1) > > if (has_idle_core) > > else > if (--nr <= 0) > return -1 So, the logic in select_idle_cpu() is that as soon as nr <= 0, we stops the walk and returns -1, without any "only stop if the answer is good enough" guard. With this change in select_idle_capacity() when nr is exhausted, we stop only if best_cpu is "good enough" (ASYM_IDLE_CORE_UCLAMP_MISFIT), otherwise we keep scanning. Therefore, we're not perfectly mirroring select_idle_cpu(). > > Should this condition not be just: > > if (!prefers_idle_core && --nr <= 0) > return best_cpu I think this would match more closely select_idle_cpu(). However, select_idle_cpu() doesn't have the "best partial idle placement" logic at all, it either returns an idle CPU or -1. I guess it's a policy decision here: do we want to mirror exactly the scan bound (nr <= 0 -> hard stop) or allow extra scan based on the ranking quality (nr <= 0 -> stop early if satisfied)? Thanks, -Andrea > > since if we do a: > > if (!choose_idle_cpu(cpu, p))) > continue; > > right after that? > > best_cpu is -1 by default so sis() will return target, in case we > already found a best_cpu then sis() will return this instead. > > What do I miss here?