1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (c) 2024 Meta Platforms, Inc. and affiliates.
4 * Copyright (c) 2024 David Vernet <dvernet@meta.com>
5 * Copyright (c) 2024 Tejun Heo <tj@kernel.org>
7 #include <scx/common.bpf.h>
9 char _license
[] SEC("license") = "GPL";
13 s32
BPF_STRUCT_OPS(ddsp_vtimelocal_fail_select_cpu
, struct task_struct
*p
,
14 s32 prev_cpu
, u64 wake_flags
)
16 s32 cpu
= scx_bpf_pick_idle_cpu(p
->cpus_ptr
, 0);
19 /* Shouldn't be allowed to vtime dispatch to a builtin DSQ. */
20 scx_bpf_dispatch_vtime(p
, SCX_DSQ_LOCAL
, SCX_SLICE_DFL
,
28 void BPF_STRUCT_OPS(ddsp_vtimelocal_fail_exit
, struct scx_exit_info
*ei
)
33 SEC(".struct_ops.link")
34 struct sched_ext_ops ddsp_vtimelocal_fail_ops
= {
35 .select_cpu
= (void *) ddsp_vtimelocal_fail_select_cpu
,
36 .exit
= (void *) ddsp_vtimelocal_fail_exit
,
37 .name
= "ddsp_vtimelocal_fail",