From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2040.outbound.protection.outlook.com [40.107.93.40]) (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 5802B3398A for ; Sun, 5 Jan 2025 07:08:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.40 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736060939; cv=fail; b=IUeiH9QjXuiqziNQFuuZlKonZELrmjBjn9z3A51nTEMOoOjr0NzV1RY12F4Yp3m0dOr2vo+GyAcoDOYj3HysGOWG36ZX1MEmCG1V0wab1qkIEAm+ZpKFGVVR4GgFHbYP8QTnK8UN3LOnOfmbNS24Vavyp3ms5e5m+NdHSL88Rzw= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736060939; c=relaxed/simple; bh=rosTKMcPQI0yg/PfJpNuOQPg85eeOnHwmNrOeHasnE8=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=FQx5OLblISrOwRIi4fOIIAQhxjtAyohbOnD7u8Atp4FkkgR82JYNskAThmMF5vUKFhOZzSfH0c7CnfF1NLUWoMzTMQqbl7YAXOAllI6X3RNDun2NjyaQmkmVd/h/XElC2i552zOafwHtJNQHYaUbvWgXVh5vRHpVYIkEaOBkUPg= 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=d/txUbx1; arc=fail smtp.client-ip=40.107.93.40 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="d/txUbx1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RqNWX5kzK27FkBUDxVa/ylGwkNk0M2+QT4C567jceP0fGiYFID3uxkwQv6lGEQqxG+1+UR2P8WNLvZ2BkYGz1YKnxGwz0sEb9SBJtQ0Y0eJ4ZAh8dvFzFzyNfvrR4DcCfIYDxayydUqNxhP1sxL78mmr0fD5JWhZamex2RuIXH3ez9FQ4Xo3IV7Ql5Ns7oD0FEiOyCoFJnJx3NCzrVveNXHzlVl/OfBl2AmtIAfwho/ziIhzgxzgZm1GUs71pLKkhcpuatjia5rKzT3XVw1L2bzXJMMC850Jyqj5+eaB8iGgqA7El78H26gFKNQBkt+mwmNRHIdUhOZTsD1QjLZqqA== 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=8p2Sa5LoFbW8lvAeUqUzUE8loI/tahQMVcPGMRs6EM0=; b=exFZ8rx7Ldq6kPQktWIzfazBD+VfxhNeEC1BsBLLlHk1Gp3ey5IyFAWnEo2n2uy/4EjNPcU/LcgSF9TqJEinB69eRUDyniGkvZNSo3KiEufvw/Us9owL9uQevqJcDUBiBEJ5J/VTH8Sq4pVKNXw+aQkQTOlJKjQaJw3qkLhzuuPUY8wWo5wGjo87kSgsZZa+9Hr0u3aAWjC9IKMzLLtiS/dUE0Dw6eKr8wnUgqkOoWVzjECCmdUGqnP8ctpyoVbHXOhZqguOqJP9kPUmW0pH+Tmef2gqhsuvPAuWKTEAINpC1Svl/FkDYOVKl7LlvKtuJ2b2F+CfnhpdvcIm711LVg== 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=8p2Sa5LoFbW8lvAeUqUzUE8loI/tahQMVcPGMRs6EM0=; b=d/txUbx1zWLPJaCUGQgzsN/oqlpRiwQbGdlfAho7238ggKQVsGTYCFrRcIuF0I5jh/M+m7P5iuF/uxbHS/kV5zHdtfXEyYlugbI8H1aMqWASJziEgpZJ/uQRpYyxFaesO1JUI7hhvR9X3zL5GoKNykMgz6XrhV4tAVrtj5gtgtbs0xt1qL7u3CqhAV017YjEzXZFHX14T6hSoF3GpJKoDWIJcagGy8sYTS90IySSwVx76+AZDa/MI/bMUqKDt3sTA5Gwz5Rvkfx8uLMSPPZ50gOGaAwuM2y6IJmzNzBwqS4dca3UhvTPb9FTjV+oyIuox2Vf0XG0eRTohR7zxBMHIQ== 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 CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8314.16; Sun, 5 Jan 2025 07:08:51 +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; Sun, 5 Jan 2025 07:08:50 +0000 Date: Sun, 5 Jan 2025 08:08:36 +0100 From: Andrea Righi To: Yury Norov Cc: Tejun Heo , David Vernet , Changwoo Min , linux-kernel@vger.kernel.org Subject: Re: [PATCH] sched_ext: idle: small CPU iteration refactoring Message-ID: References: <20250104090009.331193-1-arighi@nvidia.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: MI0P293CA0009.ITAP293.PROD.OUTLOOK.COM (2603:10a6:290:44::6) 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_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: 96e20c64-0a45-4623-5bd5-08dd2d57ce8a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?k9nXbm7RIpM3PyrFbEr7LqRW6oGwf9/jqqK4uGTUyVtLx2uZ6zu1YZ7Xgvdh?= =?us-ascii?Q?1Ypei/vJ8IQQlOCwTCuSQMaEwMdkQ4Nrd1B5UU/YjODri5QVveOhlTwmdoV3?= =?us-ascii?Q?dI352cDF0rtSta8N+edwHEJgW30TnRPjy1XB0Me+VS8g8dohyI7WAAw2xwUt?= =?us-ascii?Q?N9QPnpXM6NijZFujCu5WfkPzuuvM7e19bWYV+nIX7rTl5YuvRKRw+ctEZXRN?= =?us-ascii?Q?0luj6zLXh144krfWoXtVghcJ8OZgoD/E/fnazLHaT0p5YfqIHMO+TAXg2So9?= =?us-ascii?Q?eLl0yue+dXD1ztAXxbkBcGphr/4lCf4+E28Kz/zF6rY4oNSaOQa67N7/wDJu?= =?us-ascii?Q?4jVDfv9iTCjEjJOM6d4nHTftUByiPta/yiUvY8YL8EfZLQgjecukdj2e0kNx?= =?us-ascii?Q?BpsSjJcHEQaygaeCcK5Euk/xGZUSrVfrV2ggeCyikHF10TSG6xuxCR9iGUs/?= =?us-ascii?Q?lZ/uZLnp0XFf38PNmI6N3leewddkkdncjT0aTgX0swSVBWLd/NZ7KizJJ6yp?= =?us-ascii?Q?lD6lDGltKdFSoUl3Lb7d2N5+/LxkwAXPyD6QNYtQqEAjdBGTb3Pk7O0foUUD?= =?us-ascii?Q?LAkRb2CE0/zETlw0xEZOzXnfiyxXkDjXk2BZkSR89dysyjujcd0kJOx7QRgB?= =?us-ascii?Q?u0/Iz0HiXYDUT+WPn+SKFJ8syn0ny/J4ohQ3FllW8yRGPAR6b1ychj1fRBc3?= =?us-ascii?Q?UKyagsjZc6EiSZjscL/BDF27pwNyfkHunBeM/xxlEoq/sSNJlASCPrnDQZUe?= =?us-ascii?Q?efsiDsx6jBCc4M5anFrE+nJDD28v64sLKzq3yIAyfrpdFNito/94ogEPtfr8?= =?us-ascii?Q?gO/6bIod6Murve5LmzWMO9HXpsF4JWJ5DbWoV79+VwX5kPC6qjFkfTvA3DAR?= =?us-ascii?Q?H02roM/zaWI6KJgGssWs2TEIN3DcnTCrmf2nL9cOhTeFGIps0pKZy0rCgkVZ?= =?us-ascii?Q?4BgrefCDaboKfgyqeR2Aaj+4rVBH9Y6kM8AQ02/JP8sJmq4AcjqAQI3MNEkr?= =?us-ascii?Q?k1Cu7eWyBhml9peGGb6dToggkyAyr/rdn7z63lYAbIytM9juTuv2iPdDBfgW?= =?us-ascii?Q?Se9uzXwmSNMPGkZ20oTds8NjrWwBpGfw4iV2+c2rWx79ashpZcovBIa/tlHT?= =?us-ascii?Q?TeGJybpUW5n5PFjOsYITATfOih2SZLLgjYaTW+/26c6qNH+cCByvdrMHVAqD?= =?us-ascii?Q?H5bkWIugtWb/WmNFju+l1f3D6HfpdzkiQwsrAq8UAEfKBFOzCH1AxJpA/Mfn?= =?us-ascii?Q?fRhFoXz9sfqVwFJq5+Aj0RThR9EdKOCLMrtphNrl/iWSE0JK+wpx27kK/xRJ?= =?us-ascii?Q?Zl5Qjsae7zEL8xqCPYqneYXwIDp9dkiq/rC3mOBu95qP0e7lMLOMrP2Bj9Lx?= =?us-ascii?Q?2oz1WrfWlLRXO1iTGb2ZaC3g4UrD?= 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)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Pz6Ey3+8bKr2RZeOYXnp3Lrkq8TzWhZOtjJjNRJxsovk+C67BEnSjJCho/G/?= =?us-ascii?Q?dWvaIlUqsoqa0W/+gndYWvq/bZRbaWZximZIhz4QzyrnjVWVUTXMQamNJuf2?= =?us-ascii?Q?DhhyXNkGc+HHfGxPV/gaPR/7jP+HHT+kBx2G+YYueHCoQ3Xj8Cz75zUBIsSu?= =?us-ascii?Q?5ATJaNzFiSqt4tHKEhh66rDFviq6OK0ryudBCoO6BGTrKe3pyDLOrS8LR4VC?= =?us-ascii?Q?KAdR/zoDQ6ZCTPXdVgTEelIYdIkhAT0SmSNwtLqowt9533LM9zQbo6F6p+a0?= =?us-ascii?Q?OpXsFJkERaamBbdMqcEfdMrq+rSEsWFqMo7KiIYRYJA2iLohnVMsLbrLUs/e?= =?us-ascii?Q?3eyIakaAFpHKbkAZIoXbFzBzRur++tjpbGeH+6a8acQlbhJzg+ZgK5bqlx+P?= =?us-ascii?Q?ns0XUf78XyRHejXOJSFStqa7ekXBQTY04HCrld5ldt+4fH4VsLTSqYSGAFR8?= =?us-ascii?Q?P+n1vRdLMbGBPJbzFmJ6iiNUahg0OwUBgOg8esvWUUOe1Qe9PK/wkCQax2Ee?= =?us-ascii?Q?AceaPdybhYA+ravXYbwClCEf9EATXU/i4dz0hfoJAXflSoag3sqUNcGl/cL8?= =?us-ascii?Q?+8ePrrxlACmeuUBVcHacQ0s0mH0Wf6egKQILdG+5MegnReUHx4uYigw1SQmn?= =?us-ascii?Q?6BUY9rCs03rKkgAMyUy3Jufxc3I/LPXyxW6BAQiJrfuHao9ObmRu0vuzEpBU?= =?us-ascii?Q?34fI5f8Gct+ztKSgut4Ll/t9Jo9j13XdbN18aEIny8Uhjb7iN/ugEXaCdgH4?= =?us-ascii?Q?rEXaVf2+zvW8ubTgtOzk/E1V9ErVI9Qr7pEe/8C79gbA/YS8Air/AKSSi+/u?= =?us-ascii?Q?hYHgMkUhccq9M45BexdeC8xRu4Cl8iCtyDcuy3q4QlHQlVOWYZRzRHKo+Bju?= =?us-ascii?Q?F9u1QExdvjGsz6On0FN2HlOHrP4Rs6kGBXj2uHjKLYHv8aJPPv6JhV6WlNhY?= =?us-ascii?Q?PlreWHmK388jxGY9TXOCf1/gS1cJebsKu02yiL2RyVbz9zTo553u4TLbvuOc?= =?us-ascii?Q?I460c0j2ivcAX2zIDtrTdL0aAL5BHwR3/BIxluUwhExxZmwUBYyxBLTjKmj8?= =?us-ascii?Q?KlG5gniN83zZIMCI4m5Elc49iQgIqfH5MW/zGBeW9h8wvoT82ko3IoVR6jde?= =?us-ascii?Q?pZFAfzJCoBn7SUtoGm0nrPznQICigLvrbiBZ1eh5iokNnzRrkoF/Sq+paplg?= =?us-ascii?Q?zh+yVDDDdmGAMjsK6QvmzEBn8PkX44gIezVbq+Z8kS3TkoFYjGYxapCV2erF?= =?us-ascii?Q?baOH2nsSr8F++hY2A/qtWW0kZb+XiUtdZcR8nFHDhU7SY+AurMkq420CrJBk?= =?us-ascii?Q?dXKCojP5CJu7BlWZ/+kHdjVnj6pyzVIHQz7AK5gPOCbeWkwvPRAUr8H1SwCc?= =?us-ascii?Q?vlNriNoKvEavMcCiiakYCsBYTQi/gjr8DaKuxbuYMGPGqykYI56H0/ok84VU?= =?us-ascii?Q?UFQAmX0KhoyZ5Mk54w4sRUV8Xkr8dr1n5m4IogJgFWYKHtNbfKH5NJV8/yyl?= =?us-ascii?Q?hM9IZUmssCy9nr35J9GMVF8JF1Mw1W7U3aPIetXrTSdjQr6bq4ooGIMwZMVl?= =?us-ascii?Q?Spg29xtenbnuVdvcbXlFfwrtYxktHGqvqmU5pf9G?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 96e20c64-0a45-4623-5bd5-08dd2d57ce8a X-MS-Exchange-CrossTenant-AuthSource: CY5PR12MB6405.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2025 07:08:50.8604 (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: AlWCq1EA2Yw+BUoFur2rdZsNtNdcIYv805Fu1JDPP5aRVDp4XSw9+jKgPyOH0YLTjmOJG0rXG0+XWOspieMT8w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Hi Yury, On Sat, Jan 04, 2025 at 08:00:10PM -0800, Yury Norov wrote: > On Sat, Jan 04, 2025 at 10:00:09AM +0100, Andrea Righi wrote: > > 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. > > In my experience, replacing iterator with a dedicated function makes > you 400-500 times faster. So 'slightly' sounds like an understatement > here. There's also the fact that the smt mask typically will have just 2 bits set (maybe 4 in some high end servers), so I wasn't expecting big improvements. But in any case, it's definitely a good change to do. Thanks! -Andrea > > > 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); > > -- > > 2.47.1