1 // SPDX-License-Identifier: GPL-2.0
2 #include <test_progs.h>
10 #include "test_send_signal_kern.skel.h"
12 static void sigusr1_handler(int signum
)
16 #define THREAD_COUNT 100
18 static void *worker(void *p
)
22 for ( i
= 0; i
< 1000; i
++)
28 void test_send_signal_sched_switch(void)
30 struct test_send_signal_kern
*skel
;
31 pthread_t threads
[THREAD_COUNT
];
35 signal(SIGUSR1
, sigusr1_handler
);
37 skel
= test_send_signal_kern__open_and_load();
38 if (CHECK(!skel
, "skel_open_and_load", "skeleton open_and_load failed\n"))
41 skel
->bss
->pid
= getpid();
42 skel
->bss
->sig
= SIGUSR1
;
44 err
= test_send_signal_kern__attach(skel
);
45 if (CHECK(err
, "skel_attach", "skeleton attach failed\n"))
48 for (i
= 0; i
< THREAD_COUNT
; i
++) {
49 err
= pthread_create(threads
+ i
, NULL
, worker
, NULL
);
50 if (CHECK(err
, "pthread_create", "Error creating thread, %s\n",
55 for (i
= 0; i
< THREAD_COUNT
; i
++)
56 pthread_join(threads
[i
], NULL
);
59 test_send_signal_kern__destroy(skel
);