mirror-linux/tools/testing
Ryan Newton 5aff3b3199 sched_ext: Add a selftest for scx_bpf_dsq_peek
This commit adds two tests. The first is the most basic unit test:
make sure an empty queue peeks as empty, and when we put one element
in the queue, make sure peek returns that element.

However, even this simple test is a little complicated by the different
behavior of scx_bpf_dsq_insert in different calling contexts:
 - insert is for direct dispatch in enqueue
 - insert is delayed when called from select_cpu

In this case we split the insert and the peek that verifies the
result between enqueue/dispatch.

Note: An alternative would be to call `scx_bpf_dsq_move_to_local` on an
empty queue, which in turn calls `flush_dispatch_buf`, in order to flush
the buffered insert. Unfortunately, this is not viable within the
enqueue path, as it attempts a voluntary context switch within an RCU
read-side critical section.

The second test is a stress test that performs many peeks on all DSQs
and records the observed tasks.

Signed-off-by: Ryan Newton <newton@meta.com>
Reviewed-by: Christian Loehle <christian.loehle@arm.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
2025-10-15 06:46:36 -10:00
..
crypto/chacha20-s390
cxl
fault-injection
ktest
kunit
memblock
nvdimm
radix-tree Patch series in this pull request: 2025-10-02 18:44:54 -07:00
rbtree
scatterlist
selftests sched_ext: Add a selftest for scx_bpf_dsq_peek 2025-10-15 06:46:36 -10:00
shared Summary of significant series in this pull request: 2025-10-02 18:18:33 -07:00
vma Summary of significant series in this pull request: 2025-10-02 18:18:33 -07:00
vsock