xref: /linux/tools/testing/selftests/sched_ext/rt_stall.bpf.c (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1*be621a76SAndrea Righi // SPDX-License-Identifier: GPL-2.0
2*be621a76SAndrea Righi /*
3*be621a76SAndrea Righi  * A scheduler that verified if RT tasks can stall SCHED_EXT tasks.
4*be621a76SAndrea Righi  *
5*be621a76SAndrea Righi  * Copyright (c) 2025 NVIDIA Corporation.
6*be621a76SAndrea Righi  */
7*be621a76SAndrea Righi 
8*be621a76SAndrea Righi #include <scx/common.bpf.h>
9*be621a76SAndrea Righi 
10*be621a76SAndrea Righi char _license[] SEC("license") = "GPL";
11*be621a76SAndrea Righi 
12*be621a76SAndrea Righi UEI_DEFINE(uei);
13*be621a76SAndrea Righi 
14*be621a76SAndrea Righi void BPF_STRUCT_OPS(rt_stall_exit, struct scx_exit_info *ei)
15*be621a76SAndrea Righi {
16*be621a76SAndrea Righi 	UEI_RECORD(uei, ei);
17*be621a76SAndrea Righi }
18*be621a76SAndrea Righi 
19*be621a76SAndrea Righi SEC(".struct_ops.link")
20*be621a76SAndrea Righi struct sched_ext_ops rt_stall_ops = {
21*be621a76SAndrea Righi 	.exit			= (void *)rt_stall_exit,
22*be621a76SAndrea Righi 	.name			= "rt_stall",
23*be621a76SAndrea Righi };
24