1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
#ifndef __PERF_FTRACE_H__ #define __PERF_FTRACE_H__ #include <linux/list.h> #include "target.h" struct evlist; struct hashamp; struct stats; struct perf_ftrace { struct evlist *evlist; struct target target; const char *tracer; struct list_head filters; struct list_head notrace; struct list_head graph_funcs; struct list_head nograph_funcs; struct list_head event_pair; struct hashmap *profile_hash; unsigned long percpu_buffer_size; bool inherit; bool use_nsec; unsigned int bucket_range; unsigned int min_latency; unsigned int max_latency; unsigned int bucket_num; bool hide_empty; int graph_depth; int func_stack_trace; int func_irq_info; int graph_args; int graph_retval; int graph_retval_hex; int graph_retaddr; int graph_nosleep_time; int graph_noirqs; int graph_verbose; int graph_thresh; int graph_tail; }; struct filter_entry { struct list_head list; char name[]; }; #define NUM_BUCKET 22 /* 20 + 2 (for outliers in both direction) */ #ifdef HAVE_BPF_SKEL int perf_ftrace__latency_prepare_bpf(struct perf_ftrace *ftrace); int perf_ftrace__latency_start_bpf(struct perf_ftrace *ftrace); int perf_ftrace__latency_stop_bpf(struct perf_ftrace *ftrace); int perf_ftrace__latency_read_bpf(struct perf_ftrace *ftrace, int buckets[], struct stats *stats); int perf_ftrace__latency_cleanup_bpf(struct perf_ftrace *ftrace); #else /* !HAVE_BPF_SKEL */ static inline int perf_ftrace__latency_prepare_bpf(struct perf_ftrace *ftrace __maybe_unused) { return -1; } static inline int perf_ftrace__latency_start_bpf(struct perf_ftrace *ftrace __maybe_unused) { return -1; } static inline int perf_ftrace__latency_stop_bpf(struct perf_ftrace *ftrace __maybe_unused) { return -1; } static inline int perf_ftrace__latency_read_bpf(struct perf_ftrace *ftrace __maybe_unused, int buckets[] __maybe_unused, struct stats *stats __maybe_unused) { return -1; } static inline int perf_ftrace__latency_cleanup_bpf(struct perf_ftrace *ftrace __maybe_unused) { return -1; } #endif /* HAVE_BPF_SKEL */ #endif /* __PERF_FTRACE_H__ */