8d51327090
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>
26 lines
591 B
C
26 lines
591 B
C
#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 */
|