From nobody Thu Feb 12 21:44:03 2026 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2083.outbound.protection.outlook.com [40.107.96.83]) (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 A56C818C008 for ; Sat, 4 Jan 2025 09:00:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.96.83 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735981226; cv=fail; b=RolNuJmWv7S0Xl5v9Zlc8/nHnnL7gTkfuXz1nCobKBGxp7/KujaOF2NhsmuoR+lH/jDp8GgNoBFrZDHMfzhaydyj9p4l0gpoZal0TYK+aSnq1Xg780GribirOBXyTq6H3x02MeZQgl3Exqlsx4SxKc5YfH5tpHjqj/wuYsFLcK0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735981226; c=relaxed/simple; bh=4KOjXrhW+Nna0jxI2nXjROKdik55hFkYyTu6bKe9h+Y=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=szGcNHgw19FUL4LdlrEmSK77udhiB3L82IQeP6i6enJyQinirtBkPyTD9G6vjwnb4/rzbZhqxTJniBEQGuBRWq+wvcqBKz3KcBDhcJCnR8gKvvxmCBQ0dl6Q8cOhhLvoU3wimSWGz0FCf79w9DbLqjOjlp2Ic933a/Wu8tRXx2s= 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=R14Y8jKd; arc=fail smtp.client-ip=40.107.96.83 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="R14Y8jKd" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nbLCMgzmjUBhNmgzxR9reJM+gLseFfD5c56SOrwaCFOHNbQRObwRcwRzytf7i/duR+KBIKcIUF7dy9ToA5MLKiHtW+x43sNkaPPShAbbuL61WpJoyKKh6Y+JNm0Rk6rEEuowIJsFEscpmnqAg0yjtJlX4dNW/+W4vQzCwwHPYJKmnRVJuEC7Va39Rj16vNFDaB7BQeyVsIM25eJFDhokk9XPcOwQXKOC5tUDocbaAi9xFL3aZTS8TPXVSFahJG3FKXkxv4/gM46zn7ksnCTjXWivjIb60PXFlUmgIx9Ec5wyQ05DCzGnJG2US9HWem0WGyURAdf56vV/xn4QXcIw1g== 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=p4E7VKLqpecmX5yIF7OTAzBIJKgEY4TVffCcv3mvDWI=; b=EY6x7SDQT/haMvgUNZMCTWX5/JgyziZzg+O3ct7EpdFQVSRH/oH9wP1jh9RpvrhzXGfvW8gaUP8OC6p9wwKBi6WDKvWp1xK+vkpctNT0oKS/pw9D8tXB8JqAI1mmoWhJCCq2FfkVpkHXuupeADF8yl1Q2XD4EHo2+PyzRhjcej1nV2iXWZf67R+0hAOv9UpA8uy56CCQcogG2fY8rTh10fVz9ZoXn1siLHPFX8NzOn4nF9OawFn6rnB5eg8CWsUG1q4VjKMSl8uisUHbBPcnGo0++uZPRSifIIMsDB477CyvX5NMzVsVvxYFIFFWd1y50s88kWs7q/9DDE5JW86sbA== 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=p4E7VKLqpecmX5yIF7OTAzBIJKgEY4TVffCcv3mvDWI=; b=R14Y8jKdEcxSqrfON3Y56fMt6S7S7e13g1r21Zhh+0+si2pItRWTwMB+34IsPz3XrK3rDrarvWu5P4G95NxAdtVmgd1r8DG9t7hIs/UY58Ykp+g/9/df307BLjmsf84V0Lm4tAz6bNHDk60LpXVtOoCtiIxRHqeVAQuL38QFhoqAjDT20jJ6LXrPhULb2zWZcv55ZKErkx1v85HG5S3IdFmwxOQnOMkCJ4Q8FiThq7uiXnT4Ah6JFCkevXiCiWYbAgP0tubtCfeTuEm9Lk7IDvrKB185eoluhT0TOQobV4ep4jDdzxOhojV3GFa1F4HGxfJz1pE96R7UHSOykG+jgA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) by MN2PR12MB4173.namprd12.prod.outlook.com (2603:10b6:208:1d8::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8314.14; Sat, 4 Jan 2025 09:00:17 +0000 Received: from CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5]) by CY5PR12MB6405.namprd12.prod.outlook.com ([fe80::2119:c96c:b455:53b5%3]) with mapi id 15.20.8314.013; Sat, 4 Jan 2025 09:00:17 +0000 From: Andrea Righi To: Tejun Heo , David Vernet , Changwoo Min Cc: Yury Norov , linux-kernel@vger.kernel.org Subject: [PATCH] sched_ext: idle: small CPU iteration refactoring Date: Sat, 4 Jan 2025 10:00:09 +0100 Message-ID: <20250104090009.331193-1-arighi@nvidia.com> X-Mailer: git-send-email 2.47.1 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0028.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:c9::19) To CY5PR12MB6405.namprd12.prod.outlook.com (2603:10b6:930:3e::17) 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: CY5PR12MB6405:EE_|MN2PR12MB4173:EE_ X-MS-Office365-Filtering-Correlation-Id: 0ced17b9-9171-407b-a90d-08dd2c9e3585 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Sbk8w/NWrsU4WUa4rcYbG6F6OYqNW1OFScIXEAuyPdd56i9sMqpZ5qDjsSJ1?= =?us-ascii?Q?w/k7Z5YdKYClSSYnCLKyOtXNXd7QvDHvcuMhQK3Dh6SF9sGe+mhz9EjKqzbL?= =?us-ascii?Q?3d+1csoOyY4oRoG+U1cQj6QFRkIYzk/tNKJwSJu2ZxzQ7cyuyutJ3uR2zC05?= =?us-ascii?Q?FM43BaIYbkxtXN/vEwklkGZP18wKHpHPqAN35Puj44MvDXfZOeDDe+1R7ZEw?= =?us-ascii?Q?JqbQ6OfgZhM6WiIJGhcoiSuWGBAMpQsXW/rGJ0HXGSjPraonOp9hB593Yl00?= =?us-ascii?Q?5MngBA+1kFC/gvLFdgbUp3yMS/N9E9zDGyGkaiMf50/6sFuwOq18mxF3Pvu7?= =?us-ascii?Q?wvDZdkJKlxPEwbr1mscmpZrFEMton+GvXsHYcuIjNPGzej+fB1U+OI+RM9L2?= =?us-ascii?Q?usQd8ryUsYYNL3EKC4xJG/waZ8yk3AwMVxNz8j/7AEb/oYgz1Z9Ys6pMFMPV?= =?us-ascii?Q?qAReyzvGYLLEl1JtqoUWQb1ZOV7V1mwWOlz7CGaXmsvl39n7Ijq9kjfQqd5N?= =?us-ascii?Q?TU/7p0K2ywjiWK/Z2l2eaMfTyYfJq3h/Z6QD1IO5eD0xzWI5qwzXMdcEvYs3?= =?us-ascii?Q?mYCCYf89aw0iGr1KwmaThQ6umf276z9Jyynjygu22idi9WkhSzy7iCz1FKLo?= =?us-ascii?Q?LPgSQn9TP/lCJ2/Q/vB1E9wowQWMqSfhBYzv895B8MRY0AsA/RzM/qtwZJgG?= =?us-ascii?Q?Xtk6gMo1ZKdvYFbSIk5/tFK1xkEJh49N+ULoxZVZ9pniP8QzI4GNwjm2aBTD?= =?us-ascii?Q?SAtuAyw6obV/e1C6HZBCFf2UmTooB+HVnAosgaZ5NGSXpxWeAI0XnWXmvEBa?= =?us-ascii?Q?fjNcaPt8QgwvoJFU5Cr8qUd3LJHqWxX12D2widRgIQblykbibuAel2ZZIl42?= =?us-ascii?Q?JWEEiKOg4HmylIfhp4XHU+hO0CtBdFUxQvSDdP7q+kMxuK7g59sUkFEIo4Ux?= =?us-ascii?Q?HrcYzeLWeKmZKmQxvvBXM0Q0MpgUR5zzotPS28ISLyL6a+O4kPwcp1Wmr3rr?= =?us-ascii?Q?PpES1cXCITPxJR5HYeUmldlxJGCaAnAWn7geNAMb79YlSMkE+TRE+m4jgITw?= =?us-ascii?Q?gRbEAnLlFGigjq3+QyR68wT8tLuciHga68VtIMBKGXssJEPD6NO4E6Z6FwTg?= =?us-ascii?Q?Zt/gYrcHGoiyfPYBaRmgL+z1V876Y4rxyBI+pkQ5EtOay/dSuE2c8CTNnOe5?= =?us-ascii?Q?VrG+EaG4gau1RbZq0bm+/KSU3UFZETvNFU2+ASo0WA0dsdB2ueSNP7DrR54g?= =?us-ascii?Q?0FjLVlpOoUfTosaH3b1perbyZRAFKbE8yTHmBdqVLzC9iaZhkMSmEfZYWgkw?= =?us-ascii?Q?Iv46Gxo0CPrnoYg4/5wiGu7GiGvYwCNcdE611hb0808MO9wXOJ+nfgcPbw3X?= =?us-ascii?Q?d1LxwOJoVRhjL3vdpk+b5c4tyYjS?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY5PR12MB6405.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RjqVVlck81rAGb7fK5zacpoLHnFBOrZNbAJLQzoZMLqvlBBwTKBProHBmngd?= =?us-ascii?Q?cVfNoQMVZZgbCFCYa2GSLdP+AFXr5XsxrcIBrGuWofRTsnnx2bhU1p5F7MOM?= =?us-ascii?Q?NuMKSrQjm031iYgFJp/d+r75zR/LupmSuSNwn48ajonyYGqER+V/Gp8qR32V?= =?us-ascii?Q?x6stjZspp9p8VFJJOJKHiY4rgxr3gUohp16bCkWG1A0SXIYFN4BPoTCWbj2h?= =?us-ascii?Q?mqibjq9H80VgfW9V7eloJqlY2FqjdfFpAgexoa3FF/91xINNTB8q4KM6h6Vh?= =?us-ascii?Q?MxXhr0DWz0GEDGVAoPEYJsY5u993cIoye4Frm8S0kCpJh4V2urtifVLQnrmy?= =?us-ascii?Q?MUEZ0zh9uxOtTMP51RYh9Rzfn9F+fIOLRbnNaMQwvowhVbxoYev9PO6AzFl8?= =?us-ascii?Q?nlRzcfTkf4LpTskk0KW3LBP3jUfYX3fufAHIsi9Ijem38yRALgHQ7CuKtHB1?= =?us-ascii?Q?Iso/e53mKk0DxFKoQds15vGmOSHQ4UQA3pxdekCLp1MNlvkzsREyMZ4Fj8mh?= =?us-ascii?Q?VqOfzOjwYybZj3x+dGX1p6VXGg3siQ/nxa6AyvfPaFE+xPbh56Vmb0WkBMrb?= =?us-ascii?Q?YroeLY3n3CzEzsWkEPVfyRkgYneoQmmRgGU+VgGBCip7GEkIROrYSvWoVA1C?= =?us-ascii?Q?HA8oVt2lESA46fVwZw8tNufbch6I5cwnsM9hGOARM78FWE+96LGX8kpKWoCE?= =?us-ascii?Q?m9rUudHU5O+f2uKHCm3558cLO/Uz8gntbziJjwv42BaV8pDLBehjWElocK3b?= =?us-ascii?Q?3S07tEPqsg2wZJ4/l6wLz9DVL8qnxYzwKJQpvmGRjX7e/g0+YQXANaArbC/a?= =?us-ascii?Q?X3CGzdZaMJy57+zLKhNwFQWn+ZxWJiLrkJ+mhH7109JWAtbPG4ojm7AUlXDu?= =?us-ascii?Q?8aAmVGk6rX+ZY9K9VjE+zzkXNV0SNkeCW3FgNvU9QpYGovWGkfBW8eKGFAN1?= =?us-ascii?Q?G8xpMb9z6ryhe/f9c1xA7j5ub+U7OMnxtmgzLMjNVM7bHS7O2cGsTMnbOrtC?= =?us-ascii?Q?cscMIDLx6e0HUBVCjILEM6kBJaKNnEMu93i48Ip8C/V9LjPjTps6qLGkrPw5?= =?us-ascii?Q?8HTotkY/DsNXzvWIMeGMyKr5yXl0TbV1gxbIj/9NYjOeXAzQ0D4SRMpBcyXk?= =?us-ascii?Q?tAE9vbYkFCRZ7o5vRBVQ4oqkrNm9smA/Dil0lyeeFIsdMZkKiJ/3gEoJ/Xat?= =?us-ascii?Q?6UD+YX9JpNarC6iavCGLrMfnBm/rGs+yMmzqEgjiO0hUV953QYNLCnbxtZYp?= =?us-ascii?Q?PxFWejz8i9SYWXPSuEAR2YVbowrle4zoPO5UD5Nwe+LTwQmCafuGuzaRYzyD?= =?us-ascii?Q?Qy7PUfJwtd6b1KHi6QPA9tfb8L3Go61XO5tX/a8C95dynhOPlCcvsvS/NfJE?= =?us-ascii?Q?yAaWtiw6MyCY1yhvYGz0eBqCuTOIR8bI0po/7wKuIFNQRahKnK+9JYe6IebO?= =?us-ascii?Q?+qwA47DzJCgZLbMvl5u4s4lsW8DF356fiSsV6OqgFGQV2mvpymmMSSueWxWM?= =?us-ascii?Q?4DcMFD2y8uB2xjLKiaXg5KlWZBCb4yjXwbrOYR6/R4KmlX2mp3/nSwC3CQrj?= =?us-ascii?Q?sSoOQF+9tQz0FHBjlinXaHaxAoH2B3ZuqLGNl9vA?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ced17b9-9171-407b-a90d-08dd2c9e3585 X-MS-Exchange-CrossTenant-AuthSource: CY5PR12MB6405.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2025 09:00:17.2069 (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: bmBbhfhv7FFO9a/WW7RftoRyTYgiTm/llx2oVPHLun8Kumm2mDBFWJFHkRd53fFzmBI+SJk2IMT8dh2Qck9Aaw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4173 Content-Type: text/plain; charset="utf-8" Replace the loop to check if all SMT CPUs are idle with cpumask_subset(). This simplifies the code and slightly improves efficiency, while preserving the original behavior. Note that idle_masks.smt handling remains racy, which is acceptable as it serves as an optimization and is self-correcting. Suggested-by: Yury Norov Signed-off-by: Andrea Righi Reviewed-by: Yury Norov --- kernel/sched/ext.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index 926579624c41..0ce116e0f67c 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -3671,10 +3671,8 @@ void __scx_update_idle(struct rq *rq, bool idle) * idle_masks.smt handling is racy but that's fine as * it's only for optimization and self-correcting. */ - for_each_cpu(cpu, smt) { - if (!cpumask_test_cpu(cpu, idle_masks.cpu)) - return; - } + if (!cpumask_subset(smt, idle_masks.cpu)) + return; cpumask_or(idle_masks.smt, idle_masks.smt, smt); } else { cpumask_andnot(idle_masks.smt, idle_masks.smt, smt); --=20 2.47.1