perf tools: Introduce event selectors
Out of ad-hoc code and global arrays with hard coded sizes.
This is the first step on having a library that will be first
used on regression tests in the 'perf test' tool.
[acme@felicio linux]$ size /tmp/perf.before
text data bss dec hex filename
1273776
97384 5104416 6475576 62cf38 /tmp/perf.before
[acme@felicio linux]$ size /tmp/perf.new
text data bss dec hex filename
1275422 97416 1392416 2765254 2a31c6 /tmp/perf.new
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
LKML-Reference: <new-submission>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
@@ -461,7 +461,7 @@ static int perf_header__adds_write(struct perf_header *self, int fd)
|
||||
|
||||
/* Write trace info */
|
||||
trace_sec->offset = lseek(fd, 0, SEEK_CUR);
|
||||
read_tracing_data(fd, attrs, nr_counters);
|
||||
read_tracing_data(fd, &evsel_list);
|
||||
trace_sec->size = lseek(fd, 0, SEEK_CUR) - trace_sec->offset;
|
||||
}
|
||||
|
||||
@@ -1131,8 +1131,7 @@ int event__process_event_type(event_t *self,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int event__synthesize_tracing_data(int fd, struct perf_event_attr *pattrs,
|
||||
int nb_events,
|
||||
int event__synthesize_tracing_data(int fd, struct list_head *pattrs,
|
||||
event__handler_t process,
|
||||
struct perf_session *session __unused)
|
||||
{
|
||||
@@ -1143,7 +1142,7 @@ int event__synthesize_tracing_data(int fd, struct perf_event_attr *pattrs,
|
||||
memset(&ev, 0, sizeof(ev));
|
||||
|
||||
ev.tracing_data.header.type = PERF_RECORD_HEADER_TRACING_DATA;
|
||||
size = read_tracing_data_size(fd, pattrs, nb_events);
|
||||
size = read_tracing_data_size(fd, pattrs);
|
||||
if (size <= 0)
|
||||
return size;
|
||||
aligned_size = ALIGN(size, sizeof(u64));
|
||||
@@ -1153,7 +1152,7 @@ int event__synthesize_tracing_data(int fd, struct perf_event_attr *pattrs,
|
||||
|
||||
process(&ev, NULL, session);
|
||||
|
||||
err = read_tracing_data(fd, pattrs, nb_events);
|
||||
err = read_tracing_data(fd, pattrs);
|
||||
write_padded(fd, NULL, 0, padding);
|
||||
|
||||
return aligned_size;
|
||||
|
Reference in New Issue
Block a user