|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
17 #include <perfmon/perfmon.h>
20 #define GET_METRIC(m, i) (((m) >> (i * 8)) & 0xff)
21 #define GET_RATIO(m, i) (((m) >> (i * 32)) & 0xffffffff)
22 #define RDPMC_FIXED_SLOTS (1 << 30)
23 #define RDPMC_L1_METRICS (1 << 29)
25 #define FIXED_COUNTER_SLOTS 3
26 #define METRIC_COUNTER_TOPDOWN_L1 0
54 slots_t1 = slots_t1 - slots_t0;
56 return (slots_t1 / slots_delta) * 100;
63 u64 row = va_arg (*args,
int);
98 .name =
"topdown-level1",
99 .description =
"Top-down Microarchitecture Analysis Level 1",
100 .source =
"intel-core",
103 .events[0] = INTEL_CORE_E_TOPDOWN_SLOTS,
104 .events[1] = INTEL_CORE_E_TOPDOWN_L1_METRICS,
108 .cpu_supports = clib_cpu_supports_avx512_bitalg,
110 .column_headers =
PERFMON_STRINGS (
"% NS",
"% ST",
"% NS.RT",
"% NS.BS",
111 "% ST.FE",
"% ST.BE"),
112 .footer =
"Not Stalled (NS),STalled (ST),\n"
113 " Retiring (RT), Bad Speculation (BS),\n"
114 " FrontEnd bound (FE), BackEnd bound (BE)",
@ PERFMON_OFFSET_TYPE_METRICS
@ PERFMON_BUNDLE_TYPE_NODE
@ TOPDOWN_E_METRIC_RETIRING
struct perfmon_node_stats_t::@759::@761 t[2]
#define METRIC_COUNTER_TOPDOWN_L1
@ TOPDOWN_E_METRIC_FE_BOUND
#define PERFMON_STRINGS(...)
#define static_always_inline
static_always_inline f32 topdown_lvl1_parse_row(perfmon_node_stats_t *ns, topdown_lvl1_counters_t e)
enum @756 topdown_lvl1_metrics_t
@ TOPDOWN_E_METRIC_BAD_SPEC
description fragment has unexpected format
#define FIXED_COUNTER_SLOTS
PERFMON_REGISTER_BUNDLE(topdown_lvl1)
@ TOPDOWN_E_METRIC_BE_BOUND
static u8 * format_topdown_lvl1(u8 *s, va_list *args)
#define RDPMC_FIXED_SLOTS