1
1
/* SPDX-License-Identifier: GPL-2.0 */
2
2
/*
3
3
* Copyright (c) 2023 Meta Platforms, Inc. and affiliates.
4
- * Copyright (c) 2023 Tejun Heo <tj@kernel.org>
5
4
* Copyright (c) 2023 David Vernet <dvernet@meta.com>
5
+ * Copyright (c) 2023 Tejun Heo <tj@kernel.org>
6
6
*/
7
- #include <stdio.h>
8
- #include <unistd.h>
9
- #include <signal.h>
10
- #include <libgen.h>
11
7
#include <bpf/bpf.h>
12
8
#include <scx/common.h>
13
9
#include <sys/wait.h>
10
+ #include <unistd.h>
14
11
#include "select_cpu_dfl_nodispatch.bpf.skel.h"
15
12
#include "scx_test.h"
16
13
17
14
#define NUM_CHILDREN 1028
18
15
19
- int main ( int argc , char * * argv )
16
+ static enum scx_test_status setup ( void * * ctx )
20
17
{
21
18
struct select_cpu_dfl_nodispatch * skel ;
19
+
20
+ skel = select_cpu_dfl_nodispatch__open_and_load ();
21
+ SCX_FAIL_IF (!skel , "Failed to open and load skel" );
22
+ * ctx = skel ;
23
+
24
+ return SCX_TEST_PASS ;
25
+ }
26
+
27
+ static enum scx_test_status run (void * ctx )
28
+ {
29
+ struct select_cpu_dfl_nodispatch * skel = ctx ;
22
30
struct bpf_link * link ;
23
31
pid_t pids [NUM_CHILDREN ];
24
32
int i , status ;
25
33
26
- libbpf_set_strict_mode (LIBBPF_STRICT_ALL );
27
-
28
- skel = select_cpu_dfl_nodispatch__open_and_load ();
29
- SCX_BUG_ON (!skel , "Failed to open and load skel" );
30
-
31
34
link = bpf_map__attach_struct_ops (skel -> maps .select_cpu_dfl_nodispatch_ops );
32
- SCX_BUG_ON (!link , "Failed to attach struct_ops " );
35
+ SCX_FAIL_IF (!link , "Failed to attach scheduler " );
33
36
34
37
for (i = 0 ; i < NUM_CHILDREN ; i ++ ) {
35
38
pids [i ] = fork ();
@@ -45,8 +48,25 @@ int main(int argc, char **argv)
45
48
}
46
49
47
50
SCX_ASSERT (skel -> bss -> saw_local );
51
+
48
52
bpf_link__destroy (link );
49
- select_cpu_dfl_nodispatch__destroy (skel );
50
53
51
- return 0 ;
54
+ return SCX_TEST_PASS ;
55
+ }
56
+
57
+ static void cleanup (void * ctx )
58
+ {
59
+ struct select_cpu_dfl_nodispatch * skel = ctx ;
60
+
61
+ select_cpu_dfl_nodispatch__destroy (skel );
52
62
}
63
+
64
+ struct scx_test select_cpu_dfl_nodispatch = {
65
+ .name = "select_cpu_dfl_nodispatch" ,
66
+ .description = "Verify behavior of scx_bpf_select_cpu_dfl() in "
67
+ "ops.select_cpu()" ,
68
+ .setup = setup ,
69
+ .run = run ,
70
+ .cleanup = cleanup ,
71
+ };
72
+ REGISTER_SCX_TEST (& select_cpu_dfl_nodispatch )
0 commit comments