perf session: Event statistics also are per session
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Frédéric Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> LKML-Reference: <1260810361-22828-1-git-send-email-acme@infradead.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
c019879bcc
commit
f823e441ab
6 changed files with 10 additions and 15 deletions
|
@ -487,7 +487,7 @@ static int __cmd_annotate(void)
|
|||
dsos__fprintf(stdout);
|
||||
|
||||
perf_session__collapse_resort(session);
|
||||
perf_session__output_resort(session, event__total[0]);
|
||||
perf_session__output_resort(session, session->event_total[0]);
|
||||
perf_session__find_annotations(session);
|
||||
out_delete:
|
||||
perf_session__delete(session);
|
||||
|
|
|
@ -619,8 +619,7 @@ static int process_sample_event(event_t *event, struct perf_session *session)
|
|||
return -1;
|
||||
}
|
||||
|
||||
event__stats.total += data.period;
|
||||
|
||||
session->events_stats.total += data.period;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -731,8 +730,8 @@ static int __cmd_report(void)
|
|||
dsos__fprintf(stdout);
|
||||
|
||||
perf_session__collapse_resort(session);
|
||||
perf_session__output_resort(session, event__stats.total);
|
||||
perf_session__fprintf_hist_entries(session, event__stats.total, stdout);
|
||||
perf_session__output_resort(session, session->events_stats.total);
|
||||
perf_session__fprintf_hist_entries(session, session->events_stats.total, stdout);
|
||||
|
||||
if (show_threads)
|
||||
perf_read_values_destroy(&show_threads_values);
|
||||
|
|
|
@ -96,8 +96,8 @@ static int process_sample_event(event_t *event, struct perf_session *session)
|
|||
data.raw_size,
|
||||
data.time, thread->comm);
|
||||
}
|
||||
event__stats.total += data.period;
|
||||
|
||||
session->events_stats.total += data.period;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -187,8 +187,6 @@ void event__synthesize_threads(int (*process)(event_t *event,
|
|||
closedir(proc);
|
||||
}
|
||||
|
||||
struct events_stats event__stats;
|
||||
|
||||
int event__process_comm(event_t *self, struct perf_session *session)
|
||||
{
|
||||
struct thread *thread = perf_session__findnew(session, self->comm.pid);
|
||||
|
@ -203,10 +201,10 @@ int event__process_comm(event_t *self, struct perf_session *session)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int event__process_lost(event_t *self, struct perf_session *session __used)
|
||||
int event__process_lost(event_t *self, struct perf_session *session)
|
||||
{
|
||||
dump_printf(": id:%Ld: lost:%Ld\n", self->lost.id, self->lost.lost);
|
||||
event__stats.lost += self->lost.lost;
|
||||
session->events_stats.lost += self->lost.lost;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -168,11 +168,6 @@ void event__synthesize_threads(int (*process)(event_t *event,
|
|||
struct perf_session *session),
|
||||
struct perf_session *session);
|
||||
|
||||
extern char *event__cwd;
|
||||
extern int event__cwdlen;
|
||||
extern struct events_stats event__stats;
|
||||
extern unsigned long event__total[PERF_RECORD_MAX];
|
||||
|
||||
int event__process_comm(event_t *self, struct perf_session *session);
|
||||
int event__process_lost(event_t *self, struct perf_session *session);
|
||||
int event__process_mmap(event_t *self, struct perf_session *session);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include "header.h"
|
||||
#include "thread.h"
|
||||
#include <linux/rbtree.h>
|
||||
#include "../../../include/linux/perf_event.h"
|
||||
|
||||
struct ip_callchain;
|
||||
struct thread;
|
||||
|
@ -18,6 +19,8 @@ struct perf_session {
|
|||
struct map_groups kmaps;
|
||||
struct rb_root threads;
|
||||
struct thread *last_match;
|
||||
struct events_stats events_stats;
|
||||
unsigned long event_total[PERF_RECORD_MAX];
|
||||
struct rb_root hists;
|
||||
u64 sample_type;
|
||||
int fd;
|
||||
|
|
Loading…
Reference in a new issue