From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2060.outbound.protection.outlook.com [40.107.94.60]) (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 61426206F1D for ; Fri, 10 Jan 2025 20:20:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.60 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736540406; cv=fail; b=np0qH/gy4eJKDFHx18IrTioNBJQp4JHuaQaRVv5jAOcLxn/Y8pY+j+eGzydcd0Rld+M6ERwKaA1OFsdumK0TDwoM35Sm3ABSkWGfbjUmwV5XQMH8BS+nknA1cuYU9R0On3bLAU5bFBbcIQLFsp1Yprv3CP/hf0yWxKXCiVkWgEU= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736540406; c=relaxed/simple; bh=ThPph/pGx0WwQynMa9JnnRM5DcMk1ushAX5/V2fowo0=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=jA9E7qaJ1ziIFwZ6vFuchG4V5gTGEGbFNMobMEIguiWqE4Uz0v3JsVIW0hjIomCD1QPI2yUf8jvenVNvqj1sx86aB7gFH65BipK7Cod1Rney3FtnvXxZbe5AKyTGC9neJJrI1cdt2OYwaa5YLlMTvu95yOZuR6KxstPwZcWQjbk= 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=E23nCJj0; arc=fail smtp.client-ip=40.107.94.60 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="E23nCJj0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sDKChi7e36PSWLdWcwaPM0DQuKfjgGhP8pmrbJ7viUoJ7IDn9ialdp4yeBQZ3RpsEzDanDwX+/26VLK8DYFoGfoRA3lCcMPJzwxswHbn7EGR2Yy2+M3e5o7ErVYOtoT/ovpzNN67lNF8ZmLpXQQecjMRxHOwBpvZo5UhWsf/wPTM19JTi0aQfmeH+Bn6OaVKbd2QJe8qk2cbKk+m9ZkW2Oj504oVCddKB9wVVGtv/BalBe9Yg0myWhQT7GVt16PgyyzhEIRzI6pN02k7yQT9hxoPeJuyXj0tY6OnjH+KVtvFNiLagR6QI/0LSSEtu91XVBOOoH7C3Yzh4Ow3OwmT/g== 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=+q9pEQmP6feff67fPQYdizydhrHXLDKHswPv09kycII=; b=gyDQHEAyuwrI1otP7Obp13YRKYzMZhwlxQkthGadU02d6E/J+fvMagApvJ03oWY9Fh3AuGp7AhxdM9mahWtiNBKAqDRy5V+DjmgtSuLFLQjiSI5svSf+ZdxesAoEwBPowTHA1YHNGrOGYf/2OT3Z91dBWhxmM4ejOmFuSo+m+fwVzhLCgE0LeI5j+VQghEoB44lsdyvu96ys3luLZ+0B1rEaKNZ1DFbQRRfSpf6ewIR5eUycziOTZaDo5Zo5d3AwEKn90X0wdxbnaUOLEVyIVYlgYeFtvuhr12HKDvwCE6PuwYpmHB6v3rbVYphOHqpNRIhxAqRasssarK1L5o5GQw== 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=+q9pEQmP6feff67fPQYdizydhrHXLDKHswPv09kycII=; b=E23nCJj0bgQouGCmUF4slOU2132LeFD3F8EUPwzK8sWXuh1uTcjcZGj7xvAwO4+csuVZ9sfYfZDHiH+3/yPygUxruqQAKpU99bA/ICgFhS338We5j3LzhY+Cw+G2L6CAfXja5/u7ewHltQarxXWtrOAyAjOXs9FuHn+ReYOWi2xE9iWAAj65Gqfft+z3tQ4R3sFHz2shhyHh8zjLPaGerVwc+oTPP06ymUBvgw9hnviL0hGOZPemmcpC43YMVc8a4wZzBFbjrd9M5aDz6s/w5s+8UeFUpIbVEgVqv6F3jfLAUy2qkYAuD3i4VerIXyIHs9dMpDWyEDWjDWqt7lAhhg== 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 LV8PR12MB9084.namprd12.prod.outlook.com (2603:10b6:408:18e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8335.12; Fri, 10 Jan 2025 20:20:02 +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.8335.011; Fri, 10 Jan 2025 20:20:02 +0000 Date: Fri, 10 Jan 2025 21:19:58 +0100 From: Andrea Righi To: Tejun Heo Cc: David Vernet , Changwoo Min , Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , linux-kernel@vger.kernel.org Subject: Re: [PATCH v6] sched_ext: idle: Refresh idle masks during idle-to-idle transitions Message-ID: References: <20250110084625.562316-1-arighi@nvidia.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: MI1P293CA0019.ITAP293.PROD.OUTLOOK.COM (2603:10a6:290:3::16) 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_|LV8PR12MB9084:EE_ X-MS-Office365-Filtering-Correlation-Id: 5a399d1c-9dab-4b99-7b2e-08dd31b429f7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?iPFvz2SljKVkD7Gb0wMnqQgEOb2GT2vs31zROUG0S9WKPytfvjKeg1zbtH2d?= =?us-ascii?Q?gr+1keJDyaRC3eOtFXoxXZdDYzlxV89e7K/E0Nvhtv+xKyx7P6e8Osp0pisP?= =?us-ascii?Q?qhb3cW47R3t/417rBFZ8gzHBnqc+qlrTzoGWaEFhKZZGI6l9PyUbZ5M8Vaaz?= =?us-ascii?Q?4UruUwVZOHbD9+IIAUJDgJhcxbkQpelqiQqyPQbmT8MrpPAotgMQjgYmO45l?= =?us-ascii?Q?PxHrcEWGkktiz6KARbQrafVSlkypnWUEiRwDG/Rtro+s2lLID/58bIu56vuA?= =?us-ascii?Q?oh5fsQAY2h3PLquBaNmrdD8cuw3P+lsWPxyaN+0CbpYGBe2Kgde01KLSI/rJ?= =?us-ascii?Q?Gx43bcx/i2OpO7H7IJC5zSiXN8gRy+F6VtfiUjOMyGaV6suXon/6kaT7F49x?= =?us-ascii?Q?OBfVMYSgr2vSLvkVW6zDln9pbTeXk+oSw/c3W/IQdHPrBXYCZ+lbVj6CivqJ?= =?us-ascii?Q?mDm4wDHVzhgZUixsFF2zEDP1bD6Ha1IdvsCTceP4B71gtGErKKb4oWQ591Pd?= =?us-ascii?Q?xMAitkWRGqiSb0K0lPgpRj2+KSO9jUsP3UxVzLMKYE5bVFaK4AhDMmqYVmAv?= =?us-ascii?Q?ciu6vz/EUiv8Sk35jg9NfuaiOjyOyLHLpeBdHBelAVZDIQa8vEV/7EmwsjPF?= =?us-ascii?Q?KPSGIOsCFjrJvMqrd9ND2MLa4QP3/BcukptFbZSeZYPsiNNZESexJwMevHI3?= =?us-ascii?Q?sJlltKOQUvY2t+i+JJNhxRNmCj8G3++kGtvns2dtRQmrFGTdfvNb8qik1Ebi?= =?us-ascii?Q?by52fC5I2kGMQj5awrqEWZ1bvSSjrmxyNJHCIeNXmVY5SGYnBu5yjUwos7Lc?= =?us-ascii?Q?MobC3iru/CHC2JMdA79TBDBEFtTEAXsjDsiljRLNbRIPh5YT8t4yMFAmyLTL?= =?us-ascii?Q?WNkjp2i+yEX++87vKSLL9LqkRsrcJyyUfVLamicXdxCHstt69l8saI7zuvjX?= =?us-ascii?Q?aDMNUstOUQ6EyOwXh3c17PP356MAfbOkASlKq0G2VfK5LSpoFq6EBvp+i23A?= =?us-ascii?Q?RntwUQeADrGy+3lzBTcbReBj5gI08Oo3J5cTo3TQ3E/qKLEWX/mpiEOiMtH8?= =?us-ascii?Q?saH0vy5Lt1A7wTeSmCdPmV74GMD7PUT7E9qXjbjRUiuESaZFs5LA2ugW8mS+?= =?us-ascii?Q?m1g9kbLBzJEneYlUJimJ6xqGMV9w17usLR4jQ2W4vraEb47ojf0c/Y1pIjTv?= =?us-ascii?Q?vZ/6FSAK46R152t9QzaGgpVYzfLVKd8FWSStFMLu/O/oyxLkEYow6viqf3VI?= =?us-ascii?Q?MOw8SnNJP2GiB4E2UGaYaB6EVftqIbvB9ki0i3f894XHUo6UQaX6c8QU+WeG?= =?us-ascii?Q?PKkkkMRzdke7F/kpXaDc1Pt0tWtN/gix/33sZ4zc8e/mpq83NwguHcN8qNyt?= =?us-ascii?Q?hhramqhOWoEoj+9DD8ZPEDshKCna?= 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)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Y+ySp0Bb0gCQFKtVGylhyj73jDcN0PMouJsB2S/hhRSqw96qXFPbchuuuMcJ?= =?us-ascii?Q?u6+rAgmmmm19BRvTzdGuRH7Mh9TYNW3UBV6GwMbBWmE59T6Zdl1fB90lcBsm?= =?us-ascii?Q?QWoofFlp7uNgjhF+Sw24MFpPJpiNhIwYjeesBNl1B1w/IqXfocyp0qwqkKZE?= =?us-ascii?Q?ykzYAl9am9TAQEss3uXQ1Zp5RdU/8fcB+hBZm+sHlkMqfZwvjfnplaYRCZXh?= =?us-ascii?Q?wvluuVTva7uBsiPnzxz18VHfZUgf45aa3DE2T0cXMELCgsIzYX7WAVjSESKy?= =?us-ascii?Q?VrwCqq1wNU4pFC7HE9CgfSApjChRCM0P+dRHHF69d/l23ZxR9o4CaFkhgWR+?= =?us-ascii?Q?FBRVUI9uceKyXBq0sdP2Od9LJuMH/a29DnsYezsVysK+JC6PZh6iLoxohT86?= =?us-ascii?Q?hM6yi7zExSHn+lGW1U4MmI6YHzoIxTnS/1qbWC4UldezOoKgTmZg5pMBo+LM?= =?us-ascii?Q?f0UaZvOmKnGMxFlKg8XpLPH0THz0IFt5bzFsqjMzc4qiaj5NJzmHKA+dva5T?= =?us-ascii?Q?hhHni2l9EGE4N5QCfGBkYsckUUcYUAGT3bCjRjS9uwcsJMBsewhO16FZveK7?= =?us-ascii?Q?lGlQmNyXmRXb+uRG56P7+RtE8z+HEsVuhiONEDC7x7XT9EEdRQoNwk8pYLOT?= =?us-ascii?Q?6QIhB7q0/dVUnFAG5+3fgRXRUCzWb/+qoC/kxFH2MuMTtePGaT9s39rOKFz6?= =?us-ascii?Q?waGcpJTIfYGJYKngSM1r3NhRnTMSvjBXN15jydLbJ3gegPkIBbo0beH3mJId?= =?us-ascii?Q?ZOJo2oQLEg9dx/jCCt3TPc0aX6iHvWvB6dMieCzznLsoKbiYYIwCX839rV1L?= =?us-ascii?Q?Ux39v5OmfMb6fqS+fENlwV0yXRK8BflPlhL4EJgz/84eMSteDB279oxaje8O?= =?us-ascii?Q?iyWXXcGQgYUEZRNil/S9JJshfnh9ZXLHLZ2H8qtmza15AaX69aN73t+pqK6Z?= =?us-ascii?Q?P55ro9v62/vElDAoZINvi1Z45zavFOuNvlXGMttWm3ruk3QYyf1qcoN+BBCD?= =?us-ascii?Q?FC5UE7yc5nM9YIHZDoTFh4ddBd4UBtD3X+SVzW3AE2+9sOufbI9Sr6WucIdK?= =?us-ascii?Q?clZVX7x7CFLrBENfO0MUiXpzv+RkodVJM0YKOGqCdQH8lI8yTQA15P2IkXA2?= =?us-ascii?Q?K/SsfYnYgrvOMFb6PmfOcHmsGsG9HsfFzaV/NoR1YGmovPhDlDOep9iGVi//?= =?us-ascii?Q?YckG1OLkHJlWy7Wfk8E2l1Kqrt/5eUb5U4R9g0GoELzN8x+rTn6/kgS9rvCL?= =?us-ascii?Q?Vq1XflcLMESpBXFxt7NvUrUWRF03ndqbvb9EDizHXzmivaKIUBVWtgmg63ql?= =?us-ascii?Q?dM0RDBi2LabE4MUUPSsHbP2aGLUFhFYEpeqGiF64IqACVAgYI40Oltotoz2z?= =?us-ascii?Q?XFTJZzUro/sg9384AYo0O2v7KgwPDg+EYgEBJeZZbcFMHUkHTu+mrSRZn8l8?= =?us-ascii?Q?3Qkpw8OIEObEHLbafjpibtdSwYWWTeeJ31T5DvmjWh0py0kUh8Vjc3rPvbM/?= =?us-ascii?Q?5iW1a6YBsCSRgGKirAyfDdwJ7jv+BdF/4YMwQT3wVQgVRMXm/TzByW+Zijpg?= =?us-ascii?Q?L+20RMqpJvgB8+I48W7M6WlQshoPKzlC2KpG3SMy?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5a399d1c-9dab-4b99-7b2e-08dd31b429f7 X-MS-Exchange-CrossTenant-AuthSource: CY5PR12MB6405.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jan 2025 20:20:02.5855 (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: 1xmuDrln5KLr8owa3dkk9xYFVrvGzbdlGE/DYbdER2fshEIfMd2pn2tGoInToALxXIE7iTHoTWC8ht+m0auLMQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9084 On Fri, Jan 10, 2025 at 09:39:09AM -1000, Tejun Heo wrote: > Hello, Andrea. > > On Fri, Jan 10, 2025 at 09:46:25AM +0100, Andrea Righi wrote: > ... > > + if (do_notify) { > > + if (SCX_HAS_OP(update_idle) && !scx_rq_bypassing(rq)) > > + SCX_CALL_OP(SCX_KF_REST, update_idle, cpu_of(rq), idle); > > + } else { > > + bool is_prev_idle; > > + > > + /* Refresh idle masks during idle-to-idle transitions */ > > Can you add a bit more explanation on what case this path is handling here > or in the function comment? The function comment explains what it's about > but doesn't quite explain the exact sequence which isn't very intuitive. Ok. > > > + rcu_read_lock(); > > + is_prev_idle = is_idle_task(rcu_dereference(rq->curr)); > > + rcu_read_unlock(); > > + > > + if (!is_prev_idle) > > return; > > This function is always called under the rq lock, right? We can assert that > and skip the rcu dancing. Yes, good point! > > > } > > > > + if (!static_branch_likely(&scx_builtin_idle_enabled)) > > + return; > > Would structure like the following be better? It makes clear that the last > condition checks are for the builtin idle path. > > if (SCX_HAS_OP(update_idle) && do_notify && !scx_rq_bypassing(rq)) > // call ops.update_idle(). > > if (!scx_builtin_idle_enabled || (!do_notify && !is_idle_task(rq->curr))) > return; It's also more compact, I like it. I'll apply these changes and rephrase the comments to better clarify the logic of the different code paths. Thanks, -Andrea