85 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef __PERF_FTRACE_H__
 | |
| #define __PERF_FTRACE_H__
 | |
| 
 | |
| #include <linux/list.h>
 | |
| 
 | |
| #include "target.h"
 | |
| 
 | |
| struct evlist;
 | |
| struct hashamp;
 | |
| 
 | |
| 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 hashmap		*profile_hash;
 | |
| 	unsigned long		percpu_buffer_size;
 | |
| 	bool			inherit;
 | |
| 	bool			use_nsec;
 | |
| 	int			graph_depth;
 | |
| 	int			func_stack_trace;
 | |
| 	int			func_irq_info;
 | |
| 	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[]);
 | |
| 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)
 | |
| {
 | |
| 	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__ */
 |