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