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