mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 13:56:53 +07:00
perf stat: Define a structure for per-thread shadow stats
Perf has a set of static variables to record the runtime shadow metrics stats. While if we want to record the runtime shadow stats for per-thread, it will be the limitation. This patch creates a structure and the next patches will use this structure to update the runtime shadow stats for per-thread. Signed-off-by: Jin Yao <yao.jin@linux.intel.com> Acked-by: Jiri Olsa <jolsa@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Kan Liang <kan.liang@intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/1512482591-4646-2-git-send-email-yao.jin@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
faaf95677f
commit
e5fcc2abc3
@ -9,17 +9,6 @@
|
||||
#include "expr.h"
|
||||
#include "metricgroup.h"
|
||||
|
||||
enum {
|
||||
CTX_BIT_USER = 1 << 0,
|
||||
CTX_BIT_KERNEL = 1 << 1,
|
||||
CTX_BIT_HV = 1 << 2,
|
||||
CTX_BIT_HOST = 1 << 3,
|
||||
CTX_BIT_IDLE = 1 << 4,
|
||||
CTX_BIT_MAX = 1 << 5,
|
||||
};
|
||||
|
||||
#define NUM_CTX CTX_BIT_MAX
|
||||
|
||||
/*
|
||||
* AGGR_GLOBAL: Use CPU 0
|
||||
* AGGR_SOCKET: Use first CPU of socket
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include <linux/types.h>
|
||||
#include <stdio.h>
|
||||
#include "xyarray.h"
|
||||
#include "rblist.h"
|
||||
|
||||
struct stats
|
||||
{
|
||||
@ -43,6 +44,47 @@ enum aggr_mode {
|
||||
AGGR_UNSET,
|
||||
};
|
||||
|
||||
enum {
|
||||
CTX_BIT_USER = 1 << 0,
|
||||
CTX_BIT_KERNEL = 1 << 1,
|
||||
CTX_BIT_HV = 1 << 2,
|
||||
CTX_BIT_HOST = 1 << 3,
|
||||
CTX_BIT_IDLE = 1 << 4,
|
||||
CTX_BIT_MAX = 1 << 5,
|
||||
};
|
||||
|
||||
#define NUM_CTX CTX_BIT_MAX
|
||||
|
||||
enum stat_type {
|
||||
STAT_NONE = 0,
|
||||
STAT_NSECS,
|
||||
STAT_CYCLES,
|
||||
STAT_STALLED_CYCLES_FRONT,
|
||||
STAT_STALLED_CYCLES_BACK,
|
||||
STAT_BRANCHES,
|
||||
STAT_CACHEREFS,
|
||||
STAT_L1_DCACHE,
|
||||
STAT_L1_ICACHE,
|
||||
STAT_LL_CACHE,
|
||||
STAT_ITLB_CACHE,
|
||||
STAT_DTLB_CACHE,
|
||||
STAT_CYCLES_IN_TX,
|
||||
STAT_TRANSACTION,
|
||||
STAT_ELISION,
|
||||
STAT_TOPDOWN_TOTAL_SLOTS,
|
||||
STAT_TOPDOWN_SLOTS_ISSUED,
|
||||
STAT_TOPDOWN_SLOTS_RETIRED,
|
||||
STAT_TOPDOWN_FETCH_BUBBLES,
|
||||
STAT_TOPDOWN_RECOVERY_BUBBLES,
|
||||
STAT_SMI_NUM,
|
||||
STAT_APERF,
|
||||
STAT_MAX
|
||||
};
|
||||
|
||||
struct runtime_stat {
|
||||
struct rblist value_list;
|
||||
};
|
||||
|
||||
struct perf_stat_config {
|
||||
enum aggr_mode aggr_mode;
|
||||
bool scale;
|
||||
@ -92,7 +134,6 @@ struct perf_stat_output_ctx {
|
||||
bool force_header;
|
||||
};
|
||||
|
||||
struct rblist;
|
||||
void perf_stat__print_shadow_stats(struct perf_evsel *evsel,
|
||||
double avg, int cpu,
|
||||
struct perf_stat_output_ctx *out,
|
||||
|
Loading…
Reference in New Issue
Block a user