perf report: Fix and improve the displaying of per-thread event counters
Improve and fix the handling of per-thread counter stats recorded via perf record -s. Previously we only displayed it in debug printouts (-D) and even that output was hard to disambiguate. I moved everything to utils/values.[ch] so that we may reuse it in perf stat. We get something like this now: # PID TID cache-misses cache-references 4658 4659 495581 3238779 4658 4662 498246 3236823 4658 4663 499531 3243162 Then it'll be easy to add --pretty=raw to display a single line per thread/event. By the way, -S was also used for --symbol... So I used -T/--thread here. perf report: Add -T/--threads to display per-thread counter values We get something like this now: # PID TID cache-misses cache-references 4658 4659 495581 3238779 4658 4662 498246 3236823 4658 4663 499531 3243162 Per-thread arrays of counter values are managed in utils/values.[ch] Signed-off-by: Brice Goglin <Brice.Goglin@inria.fr> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: paulus@samba.org Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
committed by
Ingo Molnar
parent
30dd568c91
commit
8d51327090
26
tools/perf/util/values.h
Normal file
26
tools/perf/util/values.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#ifndef _PERF_VALUES_H
|
||||
#define _PERF_VALUES_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
struct perf_read_values {
|
||||
int threads;
|
||||
int threads_max;
|
||||
u32 *pid, *tid;
|
||||
int counters;
|
||||
int counters_max;
|
||||
u64 *counterrawid;
|
||||
char **countername;
|
||||
u64 **value;
|
||||
};
|
||||
|
||||
void perf_read_values_init(struct perf_read_values *values);
|
||||
void perf_read_values_destroy(struct perf_read_values *values);
|
||||
|
||||
void perf_read_values_add_value(struct perf_read_values *values,
|
||||
u32 pid, u32 tid,
|
||||
u64 rawid, char *name, u64 value);
|
||||
|
||||
void perf_read_values_display(FILE *fp, struct perf_read_values *values);
|
||||
|
||||
#endif /* _PERF_VALUES_H */
|
Reference in New Issue
Block a user