File Index
Files and directories
Sign in
FILE

leafloop.c

File preview with syntax highlighting.

linux-6.19.14/tools/perf/tests/workloads/leafloop.c C
 1/* SPDX-License-Identifier: GPL-2.0 */
 2#include <signal.h>
 3#include <stdlib.h>
 4#include <linux/compiler.h>
 5#include <unistd.h>
 6#include "../tests.h"
 7
 8/* We want to check these symbols in perf script */
 9noinline void leaf(volatile int b);
10noinline void parent(volatile int b);
11
12static volatile int a;
13static volatile sig_atomic_t done;
14
15static void sighandler(int sig __maybe_unused)
16{
17	done = 1;
18}
19
20noinline void leaf(volatile int b)
21{
22	while (!done)
23		a += b;
24}
25
26noinline void parent(volatile int b)
27{
28	leaf(b);
29}
30
31static int leafloop(int argc, const char **argv)
32{
33	int sec = 1;
34
35	if (argc > 0)
36		sec = atoi(argv[0]);
37
38	signal(SIGINT, sighandler);
39	signal(SIGALRM, sighandler);
40	alarm(sec);
41
42	parent(sec);
43	return 0;
44}
45
46DEFINE_WORKLOAD(leafloop);
~/ Read-only file preview.