sched_ext: Fix enq_last_no_enq_fails selftest

cc9877fb76 ("sched_ext: Improve error reporting during loading") changed
how load failures are reported so that more error context can be
communicated. This breaks the enq_last_no_enq_fails test as attach no longer
fails. The scheduler is guaranteed to be ejected on attach completion with
full error information. Update enq_last_no_enq_fails so that it checks that
the scheduler is ejected using ops.exit().

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Vishal Chourasia <vishalc@linux.ibm.com>
Link: http://lkml.kernel.org/r/Zxknp7RAVNjmdJSc@linux.ibm.com
Fixes: cc9877fb76 ("sched_ext: Improve error reporting during loading")
This commit is contained in:
Tejun Heo 2024-10-25 12:19:06 -10:00
parent 7724abf0ca
commit c31f2ee5cd
2 changed files with 15 additions and 3 deletions

View file

@ -12,10 +12,18 @@
char _license[] SEC("license") = "GPL";
u32 exit_kind;
void BPF_STRUCT_OPS_SLEEPABLE(enq_last_no_enq_fails_exit, struct scx_exit_info *info)
{
exit_kind = info->kind;
}
SEC(".struct_ops.link")
struct sched_ext_ops enq_last_no_enq_fails_ops = {
.name = "enq_last_no_enq_fails",
/* Need to define ops.enqueue() with SCX_OPS_ENQ_LAST */
.flags = SCX_OPS_ENQ_LAST,
.exit = (void *) enq_last_no_enq_fails_exit,
.timeout_ms = 1000U,
};

View file

@ -31,8 +31,12 @@ static enum scx_test_status run(void *ctx)
struct bpf_link *link;
link = bpf_map__attach_struct_ops(skel->maps.enq_last_no_enq_fails_ops);
if (link) {
SCX_ERR("Incorrectly succeeded in to attaching scheduler");
if (!link) {
SCX_ERR("Incorrectly failed at attaching scheduler");
return SCX_TEST_FAIL;
}
if (!skel->bss->exit_kind) {
SCX_ERR("Incorrectly stayed loaded");
return SCX_TEST_FAIL;
}
@ -50,7 +54,7 @@ static void cleanup(void *ctx)
struct scx_test enq_last_no_enq_fails = {
.name = "enq_last_no_enq_fails",
.description = "Verify we fail to load a scheduler if we specify "
.description = "Verify we eject a scheduler if we specify "
"the SCX_OPS_ENQ_LAST flag without defining "
"ops.enqueue()",
.setup = setup,