xref: /openbmc/linux/tools/perf/util/ftrace.h (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1177f4eacSNamhyung Kim #ifndef __PERF_FTRACE_H__
2177f4eacSNamhyung Kim #define __PERF_FTRACE_H__
3177f4eacSNamhyung Kim 
4177f4eacSNamhyung Kim #include <linux/list.h>
5177f4eacSNamhyung Kim 
6177f4eacSNamhyung Kim #include "target.h"
7177f4eacSNamhyung Kim 
8177f4eacSNamhyung Kim struct evlist;
9177f4eacSNamhyung Kim 
10177f4eacSNamhyung Kim struct perf_ftrace {
11177f4eacSNamhyung Kim 	struct evlist		*evlist;
12177f4eacSNamhyung Kim 	struct target		target;
13177f4eacSNamhyung Kim 	const char		*tracer;
14177f4eacSNamhyung Kim 	struct list_head	filters;
15177f4eacSNamhyung Kim 	struct list_head	notrace;
16177f4eacSNamhyung Kim 	struct list_head	graph_funcs;
17177f4eacSNamhyung Kim 	struct list_head	nograph_funcs;
18177f4eacSNamhyung Kim 	unsigned long		percpu_buffer_size;
19177f4eacSNamhyung Kim 	bool			inherit;
20*84005bb6SNamhyung Kim 	bool			use_nsec;
21177f4eacSNamhyung Kim 	int			graph_depth;
22177f4eacSNamhyung Kim 	int			func_stack_trace;
23177f4eacSNamhyung Kim 	int			func_irq_info;
24177f4eacSNamhyung Kim 	int			graph_nosleep_time;
25177f4eacSNamhyung Kim 	int			graph_noirqs;
26177f4eacSNamhyung Kim 	int			graph_verbose;
27177f4eacSNamhyung Kim 	int			graph_thresh;
28177f4eacSNamhyung Kim };
29177f4eacSNamhyung Kim 
30177f4eacSNamhyung Kim struct filter_entry {
31177f4eacSNamhyung Kim 	struct list_head	list;
32177f4eacSNamhyung Kim 	char			name[];
33177f4eacSNamhyung Kim };
34177f4eacSNamhyung Kim 
35177f4eacSNamhyung Kim #define NUM_BUCKET  22  /* 20 + 2 (for outliers in both direction) */
36177f4eacSNamhyung Kim 
37177f4eacSNamhyung Kim #ifdef HAVE_BPF_SKEL
38177f4eacSNamhyung Kim 
39177f4eacSNamhyung Kim int perf_ftrace__latency_prepare_bpf(struct perf_ftrace *ftrace);
40177f4eacSNamhyung Kim int perf_ftrace__latency_start_bpf(struct perf_ftrace *ftrace);
41177f4eacSNamhyung Kim int perf_ftrace__latency_stop_bpf(struct perf_ftrace *ftrace);
42177f4eacSNamhyung Kim int perf_ftrace__latency_read_bpf(struct perf_ftrace *ftrace,
43177f4eacSNamhyung Kim 				  int buckets[]);
44177f4eacSNamhyung Kim int perf_ftrace__latency_cleanup_bpf(struct perf_ftrace *ftrace);
45177f4eacSNamhyung Kim 
46177f4eacSNamhyung Kim #else  /* !HAVE_BPF_SKEL */
47177f4eacSNamhyung Kim 
48177f4eacSNamhyung Kim static inline int
perf_ftrace__latency_prepare_bpf(struct perf_ftrace * ftrace __maybe_unused)49177f4eacSNamhyung Kim perf_ftrace__latency_prepare_bpf(struct perf_ftrace *ftrace __maybe_unused)
50177f4eacSNamhyung Kim {
51177f4eacSNamhyung Kim 	return -1;
52177f4eacSNamhyung Kim }
53177f4eacSNamhyung Kim 
54177f4eacSNamhyung Kim static inline int
perf_ftrace__latency_start_bpf(struct perf_ftrace * ftrace __maybe_unused)55177f4eacSNamhyung Kim perf_ftrace__latency_start_bpf(struct perf_ftrace *ftrace __maybe_unused)
56177f4eacSNamhyung Kim {
57177f4eacSNamhyung Kim 	return -1;
58177f4eacSNamhyung Kim }
59177f4eacSNamhyung Kim 
60177f4eacSNamhyung Kim static inline int
perf_ftrace__latency_stop_bpf(struct perf_ftrace * ftrace __maybe_unused)61177f4eacSNamhyung Kim perf_ftrace__latency_stop_bpf(struct perf_ftrace *ftrace __maybe_unused)
62177f4eacSNamhyung Kim {
63177f4eacSNamhyung Kim 	return -1;
64177f4eacSNamhyung Kim }
65177f4eacSNamhyung Kim 
66177f4eacSNamhyung Kim static inline int
perf_ftrace__latency_read_bpf(struct perf_ftrace * ftrace __maybe_unused,int buckets[]__maybe_unused)67177f4eacSNamhyung Kim perf_ftrace__latency_read_bpf(struct perf_ftrace *ftrace __maybe_unused,
68177f4eacSNamhyung Kim 			      int buckets[] __maybe_unused)
69177f4eacSNamhyung Kim {
70177f4eacSNamhyung Kim 	return -1;
71177f4eacSNamhyung Kim }
72177f4eacSNamhyung Kim 
73177f4eacSNamhyung Kim static inline int
perf_ftrace__latency_cleanup_bpf(struct perf_ftrace * ftrace __maybe_unused)74177f4eacSNamhyung Kim perf_ftrace__latency_cleanup_bpf(struct perf_ftrace *ftrace __maybe_unused)
75177f4eacSNamhyung Kim {
76177f4eacSNamhyung Kim 	return -1;
77177f4eacSNamhyung Kim }
78177f4eacSNamhyung Kim 
79177f4eacSNamhyung Kim #endif  /* HAVE_BPF_SKEL */
80177f4eacSNamhyung Kim 
81177f4eacSNamhyung Kim #endif  /* __PERF_FTRACE_H__ */
82