pe.exclude_hv = 1;
}
- cpu = vm->cpu_index;
+ cpu = vm->cpu_id;
fd = perf_event_open (&pe, 0, cpu, -1, 0);
if (fd == -1)
{
vlib_node_runtime_t *n;
+ if (PREDICT_FALSE (vm->cpu_id != clib_get_current_cpu_id ()))
+ {
+ vm->cpu_id = clib_get_current_cpu_id ();
+ vm->numa_node = clib_get_current_numa_node ();
+ }
+
if (PREDICT_FALSE (_vec_len (vm->pending_rpc_requests) > 0))
{
if (!is_main)
/* thread, cpu and numa_node indices */
u32 thread_index;
- u32 cpu_index;
+ u32 cpu_id;
u32 numa_node;
/* List of init functions to call, setup by constructors */
ASSERT (vm->thread_index == vlib_get_thread_index ());
- vm->cpu_index = clib_get_current_cpu_index ();
- vm->numa_node = clib_get_current_numa_node ();
+ vm->cpu_id = ~0;
vlib_worker_thread_init (w);
clib_time_init (&vm->clib_time);
__os_thread_index = 0;
vm->thread_index = 0;
- vm->cpu_index = clib_get_current_cpu_index ();
- vm->numa_node = clib_get_current_numa_node ();
+ vm->cpu_id = ~0;
i = clib_calljmp (thread0, (uword) vm,
(void *) (vlib_thread_stacks[0] +
_ (sve, 22)
static inline u32
-clib_get_current_cpu_index ()
+clib_get_current_cpu_id ()
{
unsigned cpu, node;
syscall (__NR_getcpu, &cpu, &node, 0);