linux/tools/perf/bench/bench.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef BENCH_H
   3#define BENCH_H
   4
   5#include <sys/time.h>
   6
   7extern struct timeval bench__start, bench__end, bench__runtime;
   8
   9/*
  10 * The madvise transparent hugepage constants were added in glibc
  11 * 2.13. For compatibility with older versions of glibc, define these
  12 * tokens if they are not already defined.
  13 *
  14 * PA-RISC uses different madvise values from other architectures and
  15 * needs to be special-cased.
  16 */
  17#ifdef __hppa__
  18# ifndef MADV_HUGEPAGE
  19#  define MADV_HUGEPAGE         67
  20# endif
  21# ifndef MADV_NOHUGEPAGE
  22#  define MADV_NOHUGEPAGE       68
  23# endif
  24#else
  25# ifndef MADV_HUGEPAGE
  26#  define MADV_HUGEPAGE         14
  27# endif
  28# ifndef MADV_NOHUGEPAGE
  29#  define MADV_NOHUGEPAGE       15
  30# endif
  31#endif
  32
  33int bench_numa(int argc, const char **argv);
  34int bench_sched_messaging(int argc, const char **argv);
  35int bench_sched_pipe(int argc, const char **argv);
  36int bench_syscall_basic(int argc, const char **argv);
  37int bench_mem_memcpy(int argc, const char **argv);
  38int bench_mem_memset(int argc, const char **argv);
  39int bench_mem_find_bit(int argc, const char **argv);
  40int bench_futex_hash(int argc, const char **argv);
  41int bench_futex_wake(int argc, const char **argv);
  42int bench_futex_wake_parallel(int argc, const char **argv);
  43int bench_futex_requeue(int argc, const char **argv);
  44/* pi futexes */
  45int bench_futex_lock_pi(int argc, const char **argv);
  46int bench_epoll_wait(int argc, const char **argv);
  47int bench_epoll_ctl(int argc, const char **argv);
  48int bench_synthesize(int argc, const char **argv);
  49int bench_kallsyms_parse(int argc, const char **argv);
  50int bench_inject_build_id(int argc, const char **argv);
  51int bench_evlist_open_close(int argc, const char **argv);
  52
  53#define BENCH_FORMAT_DEFAULT_STR        "default"
  54#define BENCH_FORMAT_DEFAULT            0
  55#define BENCH_FORMAT_SIMPLE_STR         "simple"
  56#define BENCH_FORMAT_SIMPLE             1
  57
  58#define BENCH_FORMAT_UNKNOWN            -1
  59
  60extern int bench_format;
  61extern unsigned int bench_repeat;
  62
  63#ifndef HAVE_PTHREAD_ATTR_SETAFFINITY_NP
  64#include <pthread.h>
  65#include <linux/compiler.h>
  66static inline int pthread_attr_setaffinity_np(pthread_attr_t *attr __maybe_unused,
  67                                              size_t cpusetsize __maybe_unused,
  68                                              cpu_set_t *cpuset __maybe_unused)
  69{
  70        return 0;
  71}
  72#endif
  73
  74#endif
  75