From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2061.outbound.protection.outlook.com [40.107.243.61]) (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 0334841C6C for ; Sat, 28 Dec 2024 10:07:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.61 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735380426; cv=fail; b=c+7T2T6KLpY063RQt+eXbQCcnQIOtXtWqW4M62QFjPd5M76tGio7WhBpga5DfadthFfo4arFazBG0UMl9cqCW1WCB5KCDCzxKL1tnMPNA63qUFCT+SjUjjjweddkzl0prUyi0b+E4G6hTnnXoXkYa6LXWaY9HN8umEJ34vZ6keU= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735380426; c=relaxed/simple; bh=aAS+1iCxcQuGX76T5gyyMbm3bxuGRpncmRxNFI1yonQ=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=TNbFrfY1vr/K5mREPg0kfXU94v1Y6Xi1FvIr0ttaXCzplv3SzHCr5/gfTuc9GSuPFGEylGoBsugk0oc+mRCeehRpNCE8nYiAe+7QzuKskBQaom6Pr24lMu9sb8AW5KdeMzZTw+cgkCtLKDwo3s+n2imytwVSaqZ2UMbDIAdqa9M= 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=SWrPlq30; arc=fail smtp.client-ip=40.107.243.61 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="SWrPlq30" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XSSWW05BepBCjSwc5xZQ94MuqLPtCdssAx0IIEgp6oAdpDcNXHwaQSnjslt9kb87jQtPms7YB+pzP3DJT9L/ZHIwRVG8FTojZZHmkjtsaKpo7jN5mimh8d/YHApS/zNX/BogF6T0eFTGyJ4YmmSpj+ZPthPUyOVHNyT4clZXEvyadptFoBV2sJGp8rWe3DA+CXqaMaYNkx3ukFuUny3BaY8YS93xcJ+RIfeM6lVaQdqPngU8s7AwTjkir7GAWkfNI04LDXNBq+rdhzVUimiXbo9xh1B1UCHVJ6se9IufMxK3c78KkWuJ5GK0iuHMurg/7FGN/B8Xth9J4N3b/L3ONw== 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=PCaTb5EiJq/L9TqfTB4j/oRhCBiXgj8iCCO22s5FEA4=; b=GNbb26uIz86RcZRz+WLhgC9mq6Kw+OIRv2gtz2c8tuZdTwntXo1m0AYGyvRFqp4pJN+8ud08g+Lm5XDP1aNruMu4n9UivN9NaGa/tLfqqDb6VRozSstwhnfsfQdCodMg75WEArnhzAFh1sOoqbWXYuAVDQand5qlhqd0LDgUX0DiRgrV/lqbwKX0VgfYeuAt6ZRyduceY/g4jm2COd+56WOQbtnBVoIN95bfNhhqZSVltNyq9AmKHCL59H2R4Z8gXvRNeiugyTbd9CBi+YIvZK3rX2pmgT3bNqSfz3heVZ9pfDzKcIlPafc575S+flxPWODo4+t+5Vps19o4SlgWYg== 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=PCaTb5EiJq/L9TqfTB4j/oRhCBiXgj8iCCO22s5FEA4=; b=SWrPlq30NPMSQZWC5naR7dImcWe3KX348SDZQ+j3tRWoJmrurOmSz5ULrZ/rAqOAiBjE/EWqZkp+MuwupbdQl30H8KbMB39SuIAu5j0xY+IQhxmOAVheYEZpfVRGdidJ3UHcSfYtSU/xCh+UNzDw/BhNTly3lWOawVVKqWKz6t0UdzmUUq0qqYgSDa06HG+ueGih0Tq3oEUj7wikML07oxHw2rQ8gcK+73B/52jFERAvtoMKTSs35rmvENk7L0arWuCEYAU9Gs9PJUfRuEAcMCALxOMXQzqhYZo6tK0tcfTneZi32ZC+Mtnecb/76mvsw2rhpeeZvi9DIp+IBO2ffw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM4PR12MB6424.namprd12.prod.outlook.com (2603:10b6:8:be::16) by BY5PR12MB4146.namprd12.prod.outlook.com (2603:10b6:a03:20d::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8293.18; Sat, 28 Dec 2024 10:06:57 +0000 Received: from DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793]) by DM4PR12MB6424.namprd12.prod.outlook.com ([fe80::8133:5fd9:ff45:d793%4]) with mapi id 15.20.8293.000; Sat, 28 Dec 2024 10:06:56 +0000 From: Andrea Righi To: Tejun Heo , David Vernet , Changwoo Min Cc: Yury Norov , linux-kernel@vger.kernel.org Subject: [PATCH sched_ext/for-6.14] sched_ext: idle: introduce check_builtin_idle_enabled() helper Date: Sat, 28 Dec 2024 11:06:33 +0100 Message-ID: <20241228100633.756232-1-arighi@nvidia.com> X-Mailer: git-send-email 2.47.1 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: FR0P281CA0180.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b4::10) 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: DM4PR12MB6424:EE_|BY5PR12MB4146:EE_ X-MS-Office365-Filtering-Correlation-Id: 931a61c3-a4f5-4f04-e82a-08dd272752f2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?f/xATFOxI4DVd+GYhvWnP84y2Rhu78Z/FHzbs4oPP4agZTxsnVCFD/NL/cxu?= =?us-ascii?Q?g9ocOio33QaTBOBJ4kY8fXGK+q+l6/epEyZkzPH+cXwTvmvS2lay8T0HGewQ?= =?us-ascii?Q?hLv92TwGZ0k5vlCx2+rZxzAY+Ow5mKZgNTuEhcJhcxDHDaD3qTUEg6lFT27y?= =?us-ascii?Q?cfcVuCBukDZfSJphaHHIpV27NdBINBG3wtLCOpFYqU3BjqWQAb3SBEdbSAbV?= =?us-ascii?Q?G/fW0/FVVEWLTaV0bCxtPtpBufmszdO784aQ3Rv2LAEDDMFj1oqzA6pIHY5H?= =?us-ascii?Q?GF1G/yBRKeIoZhyzbIC4te5SXgVMhiddmkKbMpDOCK8pyd1nF+lsvUOv4q7U?= =?us-ascii?Q?dulMU6MEMrmovAFrYFBmI3EhCJ43Bt4sSvHSJhvIbGobfbcc2sJdflHAB+YA?= =?us-ascii?Q?ydsmoExzDug6BJUzuJPBN5uCh2fJXoms+7cxKXJJbjT85KI6ODbGMl3KL6BY?= =?us-ascii?Q?Pzvy8hwXtSere9+aOGNCXm9bCcWwwuiwHbRrTDdjE5PAitaGoYCgiTFrQfKo?= =?us-ascii?Q?ilaOG762kxTjFjXERWSDj75MgOq4mUPdw6GxPsHO2skCeYSKGwNot2aiWfdE?= =?us-ascii?Q?8hy3V58wFxYe/yT6uDL82I0SKxU67ccQwKTAKXBwRhYaUvTBiXj8q8KH7DhG?= =?us-ascii?Q?/ud4+GLrfLFi+LmOzYMHy4Dhq7FBGQe4Zf6QMrdj7S8vJmZ7DkRCjEduR3Vz?= =?us-ascii?Q?oDzLiYE6zq6qcUfM9erAGSLGrQ+6Hs4BLdzQSdR+XiGF1uKGFxj70vAxe3MU?= =?us-ascii?Q?26GExiRSoVTVV9jV5PJrDxkSrZdeFWFOPjTcDjhi6gn+5G2aXYybEtImsw5Z?= =?us-ascii?Q?dleotfjUR9lnyVZ4nRTubx+0fZ7yjUL2Ofmuf8lx8oJOevJnZNq+IvMQVAaU?= =?us-ascii?Q?vJFn13z3gKJ2TpK+IaHVigREEewV+Chr15E5gqbAWR2qXDEUp9mxdgDsXjW0?= =?us-ascii?Q?703iOToIyoqwrq47C8KWsBnBRCgbgO3D/m2/Tb/CGSBR7MABT6bgXEr9K6Hj?= =?us-ascii?Q?kgkFA/V5O+XaEP1xnbECrWQWvLJEQe59SYf2HnMJ+Nf9t492oAnNRvx7Z/Ye?= =?us-ascii?Q?xf6Y/X+iKjBZpA4Z/VuHyas8Ayv/wxSQaqR292Abh632FsUox/fdkC1Eug5D?= =?us-ascii?Q?aK1JWn8sHisgcqLwQNzS2gZp+ukwXGdwe5NwVkfYVO/O9GKucu79so0tyHKm?= =?us-ascii?Q?bjgzk9G0qVzjR0KqbRMa2DlBoESIp+NnWoOoZCw0i6WAl9CZUYwycD7KM04v?= =?us-ascii?Q?eprTAoh3W+x/5TWCLDJrNOMB3ZNA7C7hbZS9VYUegqmoA645tLsiZCW29m6u?= =?us-ascii?Q?bkSmG2nNwS5nmdLsTvq71VWAEQfI3NLk9Ds4CeRw64Ek/FQGb0PzaTavcmte?= =?us-ascii?Q?+03Sg6vDp10yP0nZjCiftumQBSq4?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB6424.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KLZAc2FzbyB9q+XRH66PMLrdCmiMxcczpzl5J3VSq63PA0osdZ3hONC1m1Zu?= =?us-ascii?Q?JOG69aSSpHbxRRmT4fIBgM3tq1lWCq0XqE1LCjtGzmX4qVFSSGnEJSFXvsd0?= =?us-ascii?Q?4cow02vsfNko70yEVu7LPPY7RxathOtBR/hJaDRch86grulnOg28aYyfrPl3?= =?us-ascii?Q?FOVAHaSSoHmZmwYak9XDv9Ps4h8mGGYkkfWp7vKOQaiSizxNeRWujLQCKCND?= =?us-ascii?Q?Au2CK5bQl8VtkYBhK1uX3i6ZczzNqIMLc4MOgPEzM2KJ1i5MC4YHctPCjXIJ?= =?us-ascii?Q?icr8NU0l2BH9hE24ESI4EaHDpuFy1IYavdg34m5OYbYFfD8ZWRJpCKuBw3C8?= =?us-ascii?Q?Lqvm13BqqImqElMhGnbEtnNozvmPQ3ilJplC1lmrPamFWUuy948l0MyF9vHq?= =?us-ascii?Q?rQ56k4H62LAW9p74NMbrNeVQZCmjdspmFg3K2q+Y/z+6xbv8cnyb7qwYA4qJ?= =?us-ascii?Q?RkdszuHqOcTySM5GavRsgaOV7yVb7zkkVKwlNsOnw0R6k3SoIoHQgVtvW2lt?= =?us-ascii?Q?JaC5GEPZmUivQd8af4s3cxT2rzNZxCyKomzQsK0SaEvxM3xotJacmFhIb3h7?= =?us-ascii?Q?yFx//BWj6EBfcEgIsjJ/SD2pYaWGtloZ+Uhg4ISPUBqZps4pWgabEPiInxem?= =?us-ascii?Q?4Cn1o3Yo4zNlB6B/k5Dlepi+sZMxG2AqFcSRM6E0SqptsveUF4nKmh1JTauv?= =?us-ascii?Q?UHxU91gV+/tF1J/M3Y52NObPwETnRRZ9cUTCZMdjca0UndVmViQwdozpATTG?= =?us-ascii?Q?3GfQBOuZt7U7vC8wePJ1mzwqk3fmRfBop+aGo/WQ8TQOdSRlr/oW6rxuaQkq?= =?us-ascii?Q?etwkh1UYsZ4PJa9bBlVZWU1javbBPqfpi7c313TmeaYkpbRTlroioxUQsAao?= =?us-ascii?Q?f5eYhDKEYuvdkL9b3++gMSfFu5F02RzMgjieDk9hVqrGY9UubvmmTphpew4k?= =?us-ascii?Q?x2tUDCTSEZeJSHrbkbapbxSglMPpQpon1uTYoBAKApSEIfj8UDJQYT20g0rd?= =?us-ascii?Q?f8JxyLu3Wr6GartYRCeySl9m6/zAY22FU8D/dpaXCZnrAMaHJuRxFNiP4ncc?= =?us-ascii?Q?jex4ArOqoXAe2vA51wTIxRWpaFxfH04evyuEopUG0qK/kpt8TrNHbdnmIg+E?= =?us-ascii?Q?o5JWTUI7kHxHX0jqW9MHQDk4YwtuJXNxpOE7KkchmQ2sFx7+mfQB2c3Wkjq3?= =?us-ascii?Q?TPPi+2qx8LmtJp9iE08sDK1K4MxKmRIBeYKax6ATEpTGgzf/RGeat7sCrbWr?= =?us-ascii?Q?+FFhPodpFQFr3AZVcQ+DIiIy69VuUwuXFek9aXVZTUeUHChKolBspIgkdZL7?= =?us-ascii?Q?Q5BZ3ZDJQle58sKDMlUwrN8Z7Jvxky3zgldYF4OO4NxhrHcva9iIseE3bma/?= =?us-ascii?Q?ym4VdNoKSJEG3LZX/JPbaNQIz2yJr3D4If69ixO63IcLH/EOyxH1pgzW48Pc?= =?us-ascii?Q?zgVxpTECvJuvQMZ/g6wjhsj0RDS88ALPICgs0UEVfhx5xmPciuFbj08cxmvJ?= =?us-ascii?Q?pCCYmRHJ43NIK3qJLUX0xXxYD9k4cZBiu+rIM5HnvToN6/eTdC8JjRMd9kd/?= =?us-ascii?Q?H8NIMbcA8zbVwqyWLFuAKoEH1OMn2lbeIcbbvTnZ?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 931a61c3-a4f5-4f04-e82a-08dd272752f2 X-MS-Exchange-CrossTenant-AuthSource: CY5PR12MB6405.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Dec 2024 10:06:56.8623 (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: CzKFEus11evq7PzyTJ/PZ0ZV+c/ySL70r+6fdxFX66Q/oiUxB9akMK1EUcDEs1TDKoJd3SfSNkHMVQd71n9iAw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4146 Minor refactoring to add a helper function for checking if the built-in idle CPU selection policy is enabled. Signed-off-by: Andrea Righi --- kernel/sched/ext.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/kernel/sched/ext.c b/kernel/sched/ext.c index 2d701203a3db..926579624c41 100644 --- a/kernel/sched/ext.c +++ b/kernel/sched/ext.c @@ -6297,6 +6297,15 @@ void __init init_sched_ext_class(void) __bpf_kfunc_start_defs(); +static bool check_builtin_idle_enabled(void) +{ + if (static_branch_likely(&scx_builtin_idle_enabled)) + return true; + + scx_ops_error("built-in idle tracking is disabled"); + return false; +} + /** * scx_bpf_select_cpu_dfl - The default implementation of ops.select_cpu() * @p: task_struct to select a CPU for @@ -6314,10 +6323,8 @@ __bpf_kfunc_start_defs(); __bpf_kfunc s32 scx_bpf_select_cpu_dfl(struct task_struct *p, s32 prev_cpu, u64 wake_flags, bool *is_idle) { - if (!static_branch_likely(&scx_builtin_idle_enabled)) { - scx_ops_error("built-in idle tracking is disabled"); + if (!check_builtin_idle_enabled()) goto prev_cpu; - } if (!scx_kf_allowed(SCX_KF_SELECT_CPU)) goto prev_cpu; @@ -7411,10 +7418,8 @@ __bpf_kfunc void scx_bpf_put_cpumask(const struct cpumask *cpumask) */ __bpf_kfunc const struct cpumask *scx_bpf_get_idle_cpumask(void) { - if (!static_branch_likely(&scx_builtin_idle_enabled)) { - scx_ops_error("built-in idle tracking is disabled"); + if (!check_builtin_idle_enabled()) return cpu_none_mask; - } #ifdef CONFIG_SMP return idle_masks.cpu; @@ -7432,10 +7437,8 @@ __bpf_kfunc const struct cpumask *scx_bpf_get_idle_cpumask(void) */ __bpf_kfunc const struct cpumask *scx_bpf_get_idle_smtmask(void) { - if (!static_branch_likely(&scx_builtin_idle_enabled)) { - scx_ops_error("built-in idle tracking is disabled"); + if (!check_builtin_idle_enabled()) return cpu_none_mask; - } #ifdef CONFIG_SMP if (sched_smt_active()) @@ -7473,10 +7476,8 @@ __bpf_kfunc void scx_bpf_put_idle_cpumask(const struct cpumask *idle_mask) */ __bpf_kfunc bool scx_bpf_test_and_clear_cpu_idle(s32 cpu) { - if (!static_branch_likely(&scx_builtin_idle_enabled)) { - scx_ops_error("built-in idle tracking is disabled"); + if (!check_builtin_idle_enabled()) return false; - } if (ops_cpu_valid(cpu, NULL)) return test_and_clear_cpu_idle(cpu); @@ -7506,10 +7507,8 @@ __bpf_kfunc bool scx_bpf_test_and_clear_cpu_idle(s32 cpu) __bpf_kfunc s32 scx_bpf_pick_idle_cpu(const struct cpumask *cpus_allowed, u64 flags) { - if (!static_branch_likely(&scx_builtin_idle_enabled)) { - scx_ops_error("built-in idle tracking is disabled"); + if (!check_builtin_idle_enabled()) return -EBUSY; - } return scx_pick_idle_cpu(cpus_allowed, flags); } -- 2.47.1