linux/tools/perf/util/stream.h
Jin Yao 5bbd6bad3b perf streams: Report hot streams
We show the streams separately. They are divided into different sections.

1. "Matched hot streams"

2. "Hot streams in old perf data only"

3. "Hot streams in new perf data only".

For each stream, we report the cycles and hot percent (hits%).

For example,

     cycles: 2, hits: 4.08%
 --------------------------
              main div.c:42
      compute_flag div.c:28

Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/r/20201009022845.13141-7-yao.jin@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2020-10-14 13:34:26 -03:00

41 lines
906 B
C

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __PERF_STREAM_H
#define __PERF_STREAM_H
#include "callchain.h"
struct stream {
struct callchain_node *cnode;
struct callchain_node *pair_cnode;
};
struct evsel_streams {
struct stream *streams;
int nr_streams_max;
int nr_streams;
int evsel_idx;
u64 streams_hits;
};
struct evlist_streams {
struct evsel_streams *ev_streams;
int nr_evsel;
};
struct evlist;
void evlist_streams__delete(struct evlist_streams *els);
struct evlist_streams *evlist__create_streams(struct evlist *evlist,
int nr_streams_max);
struct evsel_streams *evsel_streams__entry(struct evlist_streams *els,
int evsel_idx);
void evsel_streams__match(struct evsel_streams *es_base,
struct evsel_streams *es_pair);
void evsel_streams__report(struct evsel_streams *es_base,
struct evsel_streams *es_pair);
#endif /* __PERF_STREAM_H */