FD.io VPP  v21.10.1-2-g0a485f517
Vector Packet Processing
topdown_metrics.c File Reference
+ Include dependency graph for topdown_metrics.c:

Go to the source code of this file.

Macros

#define GET_METRIC(m, i)   (((m) >> (i * 8)) & 0xff)
 
#define GET_RATIO(m, i)   (((m) >> (i * 32)) & 0xffffffff)
 
#define RDPMC_FIXED_SLOTS   (1 << 30) /* fixed slots */
 
#define RDPMC_L1_METRICS   (1 << 29) /* l1 metric counters */
 
#define FIXED_COUNTER_SLOTS   3
 
#define METRIC_COUNTER_TOPDOWN_L1   0
 

Typedefs

typedef f64() topdown_lvl1_parse_fn_t(void *, topdown_lvl1_t)
 

Enumerations

enum  topdown_lvl1_t { TOPDOWN_E_RETIRING = 0, TOPDOWN_E_BAD_SPEC, TOPDOWN_E_FE_BOUND, TOPDOWN_E_BE_BOUND }
 
enum  { TOPDOWN_E_RDPMC_SLOTS = 0, TOPDOWN_E_RDPMC_METRICS }
 

Functions

static_always_inline f64 topdown_lvl1_perf_reading (void *ps, topdown_lvl1_t e)
 
static_always_inline f64 topdown_lvl1_rdpmc_metric (void *ps, topdown_lvl1_t e)
 
static u8format_topdown_lvl1 (u8 *s, va_list *args)
 
 PERFMON_REGISTER_BUNDLE (topdown_lvl1_metric)
 

Variables

static perfmon_cpu_supports_t topdown_lvl1_cpu_supports []
 

Macro Definition Documentation

◆ FIXED_COUNTER_SLOTS

#define FIXED_COUNTER_SLOTS   3

Definition at line 25 of file topdown_metrics.c.

◆ GET_METRIC

#define GET_METRIC (   m,
  i 
)    (((m) >> (i * 8)) & 0xff)

Definition at line 20 of file topdown_metrics.c.

◆ GET_RATIO

#define GET_RATIO (   m,
  i 
)    (((m) >> (i * 32)) & 0xffffffff)

Definition at line 21 of file topdown_metrics.c.

◆ METRIC_COUNTER_TOPDOWN_L1

#define METRIC_COUNTER_TOPDOWN_L1   0

Definition at line 26 of file topdown_metrics.c.

◆ RDPMC_FIXED_SLOTS

#define RDPMC_FIXED_SLOTS   (1 << 30) /* fixed slots */

Definition at line 22 of file topdown_metrics.c.

◆ RDPMC_L1_METRICS

#define RDPMC_L1_METRICS   (1 << 29) /* l1 metric counters */

Definition at line 23 of file topdown_metrics.c.

Typedef Documentation

◆ topdown_lvl1_parse_fn_t

typedef f64() topdown_lvl1_parse_fn_t(void *, topdown_lvl1_t)

Definition at line 42 of file topdown_metrics.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
TOPDOWN_E_RDPMC_SLOTS 
TOPDOWN_E_RDPMC_METRICS 

Definition at line 36 of file topdown_metrics.c.

◆ topdown_lvl1_t

Enumerator
TOPDOWN_E_RETIRING 
TOPDOWN_E_BAD_SPEC 
TOPDOWN_E_FE_BOUND 
TOPDOWN_E_BE_BOUND 

Definition at line 28 of file topdown_metrics.c.

Function Documentation

◆ format_topdown_lvl1()

static u8* format_topdown_lvl1 ( u8 s,
va_list *  args 
)
static

Definition at line 73 of file topdown_metrics.c.

+ Here is the call graph for this function:

◆ PERFMON_REGISTER_BUNDLE()

PERFMON_REGISTER_BUNDLE ( topdown_lvl1_metric  )

◆ topdown_lvl1_perf_reading()

static_always_inline f64 topdown_lvl1_perf_reading ( void *  ps,
topdown_lvl1_t  e 
)

Definition at line 46 of file topdown_metrics.c.

+ Here is the caller graph for this function:

◆ topdown_lvl1_rdpmc_metric()

static_always_inline f64 topdown_lvl1_rdpmc_metric ( void *  ps,
topdown_lvl1_t  e 
)

Definition at line 55 of file topdown_metrics.c.

+ Here is the caller graph for this function:

Variable Documentation

◆ topdown_lvl1_cpu_supports

perfmon_cpu_supports_t topdown_lvl1_cpu_supports[]
static
Initial value:
= {
{ clib_cpu_supports_movdiri, PERFMON_BUNDLE_TYPE_THREAD },
{ clib_cpu_supports_avx512_bitalg, PERFMON_BUNDLE_TYPE_NODE }
}

Definition at line 106 of file topdown_metrics.c.

PERFMON_BUNDLE_TYPE_NODE
@ PERFMON_BUNDLE_TYPE_NODE
Definition: perfmon.h:31
PERFMON_BUNDLE_TYPE_THREAD
@ PERFMON_BUNDLE_TYPE_THREAD
Definition: perfmon.h:32