Linux Perf
stat.h File Reference
#include <linux/types.h>
#include <stdio.h>
#include "xyarray.h"
#include "rblist.h"
Include dependency graph for stat.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  stats
 
struct  perf_stat_evsel
 
struct  runtime_stat
 
struct  perf_stat_config
 
struct  perf_aggr_thread_value
 
struct  perf_stat_output_ctx
 

Macros

#define NUM_CTX   CTX_BIT_MAX
 
#define perf_stat_evsel__is(evsel, id)   __perf_evsel_stat__is(evsel, PERF_STAT_EVSEL_ID__ ## id)
 

Typedefs

typedef void(* print_metric_t) (void *ctx, const char *color, const char *unit, const char *fmt, double val)
 
typedef void(* new_line_t) (void *ctx)
 

Enumerations

enum  perf_stat_evsel_id {
  PERF_STAT_EVSEL_ID__NONE = 0, PERF_STAT_EVSEL_ID__CYCLES_IN_TX, PERF_STAT_EVSEL_ID__TRANSACTION_START, PERF_STAT_EVSEL_ID__ELISION_START,
  PERF_STAT_EVSEL_ID__CYCLES_IN_TX_CP, PERF_STAT_EVSEL_ID__TOPDOWN_TOTAL_SLOTS, PERF_STAT_EVSEL_ID__TOPDOWN_SLOTS_ISSUED, PERF_STAT_EVSEL_ID__TOPDOWN_SLOTS_RETIRED,
  PERF_STAT_EVSEL_ID__TOPDOWN_FETCH_BUBBLES, PERF_STAT_EVSEL_ID__TOPDOWN_RECOVERY_BUBBLES, PERF_STAT_EVSEL_ID__SMI_NUM, PERF_STAT_EVSEL_ID__APERF,
  PERF_STAT_EVSEL_ID__MAX
}
 
enum  aggr_mode {
  AGGR_NONE, AGGR_GLOBAL, AGGR_SOCKET, AGGR_CORE,
  AGGR_THREAD, 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
}
 
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
}
 

Functions

void update_stats (struct stats *stats, u64 val)
 
double avg_stats (struct stats *stats)
 
double stddev_stats (struct stats *stats)
 
double rel_stddev_stats (double stddev, double avg)
 
static void init_stats (struct stats *stats)
 
bool __perf_evsel_stat__is (struct perf_evsel *evsel, enum perf_stat_evsel_id id)
 
void runtime_stat__init (struct runtime_stat *st)
 
void runtime_stat__exit (struct runtime_stat *st)
 
void perf_stat__init_shadow_stats (void)
 
void perf_stat__reset_shadow_stats (void)
 
void perf_stat__reset_shadow_per_stat (struct runtime_stat *st)
 
void perf_stat__update_shadow_stats (struct perf_evsel *counter, u64 count, int cpu, struct runtime_stat *st)
 
void perf_stat__print_shadow_stats (struct perf_evsel *evsel, double avg, int cpu, struct perf_stat_output_ctx *out, struct rblist *metric_events, struct runtime_stat *st)
 
void perf_stat__collect_metric_expr (struct perf_evlist *)
 
int perf_evlist__alloc_stats (struct perf_evlist *evlist, bool alloc_raw)
 
void perf_evlist__free_stats (struct perf_evlist *evlist)
 
void perf_evlist__reset_stats (struct perf_evlist *evlist)
 
int perf_stat_process_counter (struct perf_stat_config *config, struct perf_evsel *counter)
 
int perf_event__process_stat_event (struct perf_tool *tool, union perf_event *event, struct perf_session *session)
 
size_t perf_event__fprintf_stat (union perf_event *event, FILE *fp)
 
size_t perf_event__fprintf_stat_round (union perf_event *event, FILE *fp)
 
size_t perf_event__fprintf_stat_config (union perf_event *event, FILE *fp)
 

Variables

struct runtime_stat rt_stat
 
struct stats walltime_nsecs_stats
 

Macro Definition Documentation

◆ NUM_CTX

#define NUM_CTX   CTX_BIT_MAX

Definition at line 55 of file stat.h.

◆ perf_stat_evsel__is

#define perf_stat_evsel__is (   evsel,
  id 
)    __perf_evsel_stat__is(evsel, PERF_STAT_EVSEL_ID__ ## id)

Definition at line 127 of file stat.h.

Typedef Documentation

◆ new_line_t

typedef void(* new_line_t) (void *ctx)

Definition at line 135 of file stat.h.

◆ print_metric_t

typedef void(* print_metric_t) (void *ctx, const char *color, const char *unit, const char *fmt, double val)

Definition at line 133 of file stat.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
CTX_BIT_USER 
CTX_BIT_KERNEL 
CTX_BIT_HV 
CTX_BIT_HOST 
CTX_BIT_IDLE 
CTX_BIT_MAX 

Definition at line 46 of file stat.h.

◆ aggr_mode

enum aggr_mode
Enumerator
AGGR_NONE 
AGGR_GLOBAL 
AGGR_SOCKET 
AGGR_CORE 
AGGR_THREAD 
AGGR_UNSET 

Definition at line 37 of file stat.h.

◆ perf_stat_evsel_id

Enumerator
PERF_STAT_EVSEL_ID__NONE 
PERF_STAT_EVSEL_ID__CYCLES_IN_TX 
PERF_STAT_EVSEL_ID__TRANSACTION_START 
PERF_STAT_EVSEL_ID__ELISION_START 
PERF_STAT_EVSEL_ID__CYCLES_IN_TX_CP 
PERF_STAT_EVSEL_ID__TOPDOWN_TOTAL_SLOTS 
PERF_STAT_EVSEL_ID__TOPDOWN_SLOTS_ISSUED 
PERF_STAT_EVSEL_ID__TOPDOWN_SLOTS_RETIRED 
PERF_STAT_EVSEL_ID__TOPDOWN_FETCH_BUBBLES 
PERF_STAT_EVSEL_ID__TOPDOWN_RECOVERY_BUBBLES 
PERF_STAT_EVSEL_ID__SMI_NUM 
PERF_STAT_EVSEL_ID__APERF 
PERF_STAT_EVSEL_ID__MAX 

Definition at line 15 of file stat.h.

◆ stat_type

enum stat_type
Enumerator
STAT_NONE 
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 

Definition at line 57 of file stat.h.

Function Documentation

◆ __perf_evsel_stat__is()

bool __perf_evsel_stat__is ( struct perf_evsel evsel,
enum perf_stat_evsel_id  id 
)

Definition at line 70 of file stat.c.

◆ avg_stats()

double avg_stats ( struct stats stats)

Definition at line 26 of file stat.c.

◆ init_stats()

static void init_stats ( struct stats stats)
inlinestatic

Definition at line 103 of file stat.h.

◆ perf_event__fprintf_stat()

size_t perf_event__fprintf_stat ( union perf_event event,
FILE *  fp 
)

Definition at line 400 of file stat.c.

◆ perf_event__fprintf_stat_config()

size_t perf_event__fprintf_stat_config ( union perf_event event,
FILE *  fp 
)

Definition at line 424 of file stat.c.

Here is the call graph for this function:

◆ perf_event__fprintf_stat_round()

size_t perf_event__fprintf_stat_round ( union perf_event event,
FILE *  fp 
)

Definition at line 413 of file stat.c.

◆ perf_event__process_stat_event()

int perf_event__process_stat_event ( struct perf_tool tool,
union perf_event event,
struct perf_session session 
)

◆ perf_evlist__alloc_stats()

int perf_evlist__alloc_stats ( struct perf_evlist evlist,
bool  alloc_raw 
)

Definition at line 170 of file stat.c.

Here is the call graph for this function:

◆ perf_evlist__free_stats()

void perf_evlist__free_stats ( struct perf_evlist evlist)

Definition at line 186 of file stat.c.

Here is the call graph for this function:

◆ perf_evlist__reset_stats()

void perf_evlist__reset_stats ( struct perf_evlist evlist)

Definition at line 197 of file stat.c.

Here is the call graph for this function:

◆ perf_stat__collect_metric_expr()

void perf_stat__collect_metric_expr ( struct perf_evlist )

Definition at line 313 of file stat-shadow.c.

Here is the call graph for this function:

◆ perf_stat__init_shadow_stats()

void perf_stat__init_shadow_stats ( void  )

Definition at line 141 of file stat-shadow.c.

Here is the call graph for this function:

◆ perf_stat__print_shadow_stats()

void perf_stat__print_shadow_stats ( struct perf_evsel evsel,
double  avg,
int  cpu,
struct perf_stat_output_ctx out,
struct rblist metric_events,
struct runtime_stat st 
)

Definition at line 753 of file stat-shadow.c.

Here is the call graph for this function:

◆ perf_stat__reset_shadow_per_stat()

void perf_stat__reset_shadow_per_stat ( struct runtime_stat st)

Definition at line 187 of file stat-shadow.c.

Here is the call graph for this function:

◆ perf_stat__reset_shadow_stats()

void perf_stat__reset_shadow_stats ( void  )

Definition at line 181 of file stat-shadow.c.

Here is the call graph for this function:

◆ perf_stat__update_shadow_stats()

void perf_stat__update_shadow_stats ( struct perf_evsel counter,
u64  count,
int  cpu,
struct runtime_stat st 
)

Definition at line 208 of file stat-shadow.c.

Here is the call graph for this function:

◆ perf_stat_process_counter()

int perf_stat_process_counter ( struct perf_stat_config config,
struct perf_evsel counter 
)

Definition at line 327 of file stat.c.

Here is the call graph for this function:

◆ rel_stddev_stats()

double rel_stddev_stats ( double  stddev,
double  avg 
)

Definition at line 60 of file stat.c.

Here is the call graph for this function:

◆ runtime_stat__exit()

void runtime_stat__exit ( struct runtime_stat st)

Definition at line 136 of file stat-shadow.c.

Here is the call graph for this function:

◆ runtime_stat__init()

void runtime_stat__init ( struct runtime_stat st)

Definition at line 126 of file stat-shadow.c.

Here is the call graph for this function:

◆ stddev_stats()

double stddev_stats ( struct stats stats)

Definition at line 47 of file stat.c.

◆ update_stats()

void update_stats ( struct stats stats,
u64  val 
)

Definition at line 10 of file stat.c.

Variable Documentation

◆ rt_stat

struct runtime_stat rt_stat

Definition at line 21 of file stat-shadow.c.

◆ walltime_nsecs_stats

struct stats walltime_nsecs_stats

Definition at line 22 of file stat-shadow.c.