sched_ext: Add scx_bpf_events() and scx_read_event() for BPF schedulers
authorChangwoo Min <changwoo@igalia.com>
Tue, 4 Feb 2025 05:20:55 +0000 (14:20 +0900)
committerTejun Heo <tj@kernel.org>
Tue, 4 Feb 2025 20:36:47 +0000 (10:36 -1000)
scx_bpf_events() is added to the header files so the BPF scheduler
can use it. Also, scx_read_event() is added to read an event type in a
compatible way.

Signed-off-by: Changwoo Min <changwoo@igalia.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
tools/sched_ext/include/scx/common.bpf.h

index f254a39b86a5887581af7aed455adb075b37f674..70554000302416353fa529397f06fc8541d4ea89 100644 (file)
@@ -78,6 +78,10 @@ struct rq *scx_bpf_cpu_rq(s32 cpu) __ksym;
 struct cgroup *scx_bpf_task_cgroup(struct task_struct *p) __ksym __weak;
 u64 scx_bpf_now(void) __ksym __weak;
 
+void scx_bpf_events(struct scx_event_stats *events, size_t events__sz) __ksym __weak;
+#define scx_read_event(e, name)                                                        \
+       (bpf_core_field_exists((e)->name) ? (e)->name : 0)
+
 /*
  * Use the following as @it__iter when calling scx_bpf_dsq_move[_vtime]() from
  * within bpf_for_each() loops.