|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
22 #include <vpp/app/version.h>
23 #include <linux/limits.h>
24 #include <sys/ioctl.h>
26 #include <perfmon/perfmon.h>
35 counters[6] = _rdpmc (pmc_index[6]);
37 counters[5] = _rdpmc (pmc_index[5]);
39 counters[4] = _rdpmc (pmc_index[4]);
41 counters[3] = _rdpmc (pmc_index[3]);
43 counters[2] = _rdpmc (pmc_index[2]);
45 counters[1] = _rdpmc (pmc_index[1]);
47 counters[0] = _rdpmc (pmc_index[0]);
61 return (
int) (
b->metrics[
i]);
74 u8 n_events =
rt->n_events;
113 for (
int i = 0;
i < n_events;
i++)
114 s->
value[
i] += after[
i] - before[
i];
129 u8 n_events =
rt->n_events;
static_always_inline void perfmon_read_pmcs(u64 *counters, int *pmc_index, u8 n_counters)
vlib_main_t vlib_node_runtime_t vlib_frame_t * frame
perfmon_main_t perfmon_main
vlib_main_t vlib_node_runtime_t * node
struct perfmon_node_stats_t::@759::@761 t[2]
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
static_always_inline void * clib_memcpy_fast(void *restrict dst, const void *restrict src, size_t n)
perfmon_thread_runtime_t * thread_runtimes
static_always_inline int perfmon_metric_index(perfmon_bundle_t *b, u8 i)
#define vec_elt_at_index(v, i)
Get vector value at index i checking that i is in bounds.
#define static_always_inline
sll srl srl sll sra u16x4 i
uword perfmon_dispatch_wrapper_metrics(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
struct perf_event_mmap_page * mmap_pages[PERF_MAX_EVENTS]
static_always_inline void clib_prefetch_load(void *p)
static_always_inline int perfmon_calc_mmap_offset(perfmon_thread_runtime_t *tr, u8 i)
uword perfmon_dispatch_wrapper_mmap(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
vnet_interface_output_runtime_t * rt
u64 value[PERF_MAX_EVENTS]