misc: add callback hooks and refactor pmc

Callbacks for monitoring and performance measurement:
- Add new callback list type, with context
- Add callbacks for API, CLI, and barrier sync
- Modify node dispatch callback to pass plugin-specific context
- Modify perfmon plugin to keep PMC samples local to the plugin
- Include process nodes in dispatch callback
- Pass dispatch function return value to callback

Type: refactor

Signed-off-by: Tom Seidenberg <tseidenb@cisco.com>
Change-Id: I28b06c58490611e08d76ff5b01b2347ba2109b22
This commit is contained in:
Tom Seidenberg
2020-07-10 15:49:03 +00:00
committed by Dave Barach
parent bab02f0b18
commit 6c81f5a249
24 changed files with 825 additions and 252 deletions

View File

@ -235,9 +235,6 @@ typedef struct
u64 calls, vectors, clocks, suspends;
u64 max_clock;
u64 max_clock_n;
u64 perf_counter0_ticks;
u64 perf_counter1_ticks;
u64 perf_counter_vectors;
} vlib_node_stats_t;
#define foreach_vlib_node_state \
@ -484,10 +481,6 @@ typedef struct vlib_node_runtime_t
u32 vectors_since_last_overflow; /**< Number of vector elements
processed by this node. */
u32 perf_counter0_ticks_since_last_overflow; /**< Perf counter 0 ticks */
u32 perf_counter1_ticks_since_last_overflow; /**< Perf counter 1 ticks */
u32 perf_counter_vectors_since_last_overflow; /**< Perf counter vectors */
u32 next_frame_index; /**< Start of next frames for this
node. */