016e92fbc9
This librarizes the perf.data file mapping and handling in various perf tools, roughly reducing the amount of code and fixing the places that mmap from beginning of the file whereas we want to mmap from the beginning of the data, leading to page fault because the mmap window is too small since the trace info are written in the file too. TODO: - convert perf timechart too Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Arjan van de Ven <arjan@infradead.org> LKML-Reference: <20091007104729.GD5043@nowhere> Signed-off-by: Ingo Molnar <mingo@elte.hu>
31 lines
914 B
C
31 lines
914 B
C
#ifndef __PERF_DATAMAP_H
|
|
#define __PERF_DATAMAP_H
|
|
|
|
#include "event.h"
|
|
#include "header.h"
|
|
|
|
typedef int (*event_type_handler_t)(event_t *, unsigned long, unsigned long);
|
|
|
|
struct perf_file_handler {
|
|
event_type_handler_t process_sample_event;
|
|
event_type_handler_t process_mmap_event;
|
|
event_type_handler_t process_comm_event;
|
|
event_type_handler_t process_fork_event;
|
|
event_type_handler_t process_exit_event;
|
|
event_type_handler_t process_lost_event;
|
|
event_type_handler_t process_read_event;
|
|
event_type_handler_t process_throttle_event;
|
|
event_type_handler_t process_unthrottle_event;
|
|
int (*sample_type_check)(u64 sample_type);
|
|
unsigned long total_unknown;
|
|
};
|
|
|
|
void register_perf_file_handler(struct perf_file_handler *handler);
|
|
int mmap_dispatch_perf_file(struct perf_header **pheader,
|
|
const char *input_name,
|
|
int force,
|
|
int full_paths,
|
|
int *cwdlen,
|
|
char **cwd);
|
|
|
|
#endif
|