xref: /linux/tools/perf/bench/bench.h (revision 93df8a1ed6231727c5db94a80b1a6bd5ee67cec3)
1 #ifndef BENCH_H
2 #define BENCH_H
3 
4 /*
5  * The madvise transparent hugepage constants were added in glibc
6  * 2.13. For compatibility with older versions of glibc, define these
7  * tokens if they are not already defined.
8  *
9  * PA-RISC uses different madvise values from other architectures and
10  * needs to be special-cased.
11  */
12 #ifdef __hppa__
13 # ifndef MADV_HUGEPAGE
14 #  define MADV_HUGEPAGE		67
15 # endif
16 # ifndef MADV_NOHUGEPAGE
17 #  define MADV_NOHUGEPAGE	68
18 # endif
19 #else
20 # ifndef MADV_HUGEPAGE
21 #  define MADV_HUGEPAGE		14
22 # endif
23 # ifndef MADV_NOHUGEPAGE
24 #  define MADV_NOHUGEPAGE	15
25 # endif
26 #endif
27 
28 extern int bench_numa(int argc, const char **argv, const char *prefix);
29 extern int bench_sched_messaging(int argc, const char **argv, const char *prefix);
30 extern int bench_sched_pipe(int argc, const char **argv, const char *prefix);
31 extern int bench_mem_memcpy(int argc, const char **argv,
32 			    const char *prefix __maybe_unused);
33 extern int bench_mem_memset(int argc, const char **argv, const char *prefix);
34 extern int bench_futex_hash(int argc, const char **argv, const char *prefix);
35 extern int bench_futex_wake(int argc, const char **argv, const char *prefix);
36 extern int bench_futex_wake_parallel(int argc, const char **argv,
37 				     const char *prefix);
38 extern int bench_futex_requeue(int argc, const char **argv, const char *prefix);
39 /* pi futexes */
40 extern int bench_futex_lock_pi(int argc, const char **argv, const char *prefix);
41 
42 #define BENCH_FORMAT_DEFAULT_STR	"default"
43 #define BENCH_FORMAT_DEFAULT		0
44 #define BENCH_FORMAT_SIMPLE_STR		"simple"
45 #define BENCH_FORMAT_SIMPLE		1
46 
47 #define BENCH_FORMAT_UNKNOWN		-1
48 
49 extern int bench_format;
50 extern unsigned int bench_repeat;
51 
52 #endif
53