xref: /linux/tools/perf/bench/bench.h (revision b6ebbac51bedf9e98e837688bc838f400196da5e)
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 int bench_numa(int argc, const char **argv, const char *prefix);
29 int bench_sched_messaging(int argc, const char **argv, const char *prefix);
30 int bench_sched_pipe(int argc, const char **argv, const char *prefix);
31 int bench_mem_memcpy(int argc, const char **argv, const char *prefix);
32 int bench_mem_memset(int argc, const char **argv, const char *prefix);
33 int bench_futex_hash(int argc, const char **argv, const char *prefix);
34 int bench_futex_wake(int argc, const char **argv, const char *prefix);
35 int bench_futex_wake_parallel(int argc, const char **argv, const char *prefix);
36 int bench_futex_requeue(int argc, const char **argv, const char *prefix);
37 /* pi futexes */
38 int bench_futex_lock_pi(int argc, const char **argv, const char *prefix);
39 
40 #define BENCH_FORMAT_DEFAULT_STR	"default"
41 #define BENCH_FORMAT_DEFAULT		0
42 #define BENCH_FORMAT_SIMPLE_STR		"simple"
43 #define BENCH_FORMAT_SIMPLE		1
44 
45 #define BENCH_FORMAT_UNKNOWN		-1
46 
47 extern int bench_format;
48 extern unsigned int bench_repeat;
49 
50 #endif
51