mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	Add drop count to 'perf top' headers: # perf top --stdio PerfTop: 3549 irqs/sec kernel:51.8% exact: 100.0% lost: 0/0 drop: 0/0 [4000Hz cycles:ppp], (all, 8 CPUs) # perf top Samples: 0 of event 'cycles:ppp', 4000 Hz, Event count (approx.): 0 lost: 0/0 drop: 0/0 The format is: <current period drop>/<total drop> Signed-off-by: Jiri Olsa <jolsa@kernel.org> Acked-by: David S. Miller <davem@davemloft.net> Acked-by: Namhyung Kim <namhyung@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/n/tip-2lj87zz8tq9ye1ntax3ulw0n@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0 */
 | 
						||
#ifndef __PERF_TOP_H
 | 
						||
#define __PERF_TOP_H 1
 | 
						||
 | 
						||
#include "tool.h"
 | 
						||
#include "annotate.h"
 | 
						||
#include <linux/types.h>
 | 
						||
#include <stddef.h>
 | 
						||
#include <stdbool.h>
 | 
						||
#include <sys/ioctl.h>
 | 
						||
 | 
						||
struct perf_evlist;
 | 
						||
struct perf_evsel;
 | 
						||
struct perf_session;
 | 
						||
 | 
						||
struct perf_top {
 | 
						||
	struct perf_tool   tool;
 | 
						||
	struct perf_evlist *evlist;
 | 
						||
	struct record_opts record_opts;
 | 
						||
	struct annotation_options annotation_opts;
 | 
						||
	/*
 | 
						||
	 * Symbols will be added here in perf_event__process_sample and will
 | 
						||
	 * get out after decayed.
 | 
						||
	 */
 | 
						||
	u64		   samples, lost, lost_total, drop, drop_total;
 | 
						||
	u64		   kernel_samples, us_samples;
 | 
						||
	u64		   exact_samples;
 | 
						||
	u64		   guest_us_samples, guest_kernel_samples;
 | 
						||
	int		   print_entries, count_filter, delay_secs;
 | 
						||
	int		   max_stack;
 | 
						||
	bool		   hide_kernel_symbols, hide_user_symbols, zero;
 | 
						||
	bool		   use_tui, use_stdio;
 | 
						||
	bool		   vmlinux_warned;
 | 
						||
	bool		   dump_symtab;
 | 
						||
	struct hist_entry  *sym_filter_entry;
 | 
						||
	struct perf_evsel  *sym_evsel;
 | 
						||
	struct perf_session *session;
 | 
						||
	struct winsize	   winsize;
 | 
						||
	int		   realtime_prio;
 | 
						||
	const char	   *sym_filter;
 | 
						||
	float		   min_percent;
 | 
						||
	unsigned int	   nr_threads_synthesize;
 | 
						||
 | 
						||
	struct {
 | 
						||
		struct ordered_events	*in;
 | 
						||
		struct ordered_events	 data[2];
 | 
						||
		bool			 rotate;
 | 
						||
		pthread_mutex_t		 mutex;
 | 
						||
		pthread_cond_t		 cond;
 | 
						||
	} qe;
 | 
						||
};
 | 
						||
 | 
						||
#define CONSOLE_CLEAR "[H[2J"
 | 
						||
 | 
						||
size_t perf_top__header_snprintf(struct perf_top *top, char *bf, size_t size);
 | 
						||
void perf_top__reset_sample_counters(struct perf_top *top);
 | 
						||
#endif /* __PERF_TOP_H */
 |