From 29c0b334010a9f8f85212ab55a5f4cf8c8ce3195 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Mon, 28 Jan 2019 13:41:27 +0100 Subject: Less intrusive way to capture numa_node and cpu_id changes Change-Id: I3a33fb81f31ed473811e9e7a6197b81135913865 Signed-off-by: Damjan Marion --- src/vlib/unix/input.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/vlib/unix/input.c') diff --git a/src/vlib/unix/input.c b/src/vlib/unix/input.c index 8be0770bfd3..6b519e5ce95 100644 --- a/src/vlib/unix/input.c +++ b/src/vlib/unix/input.c @@ -223,12 +223,13 @@ linux_epoll_input_inline (vlib_main_t * vm, vlib_node_runtime_t * node, em->epoll_events, vec_len (em->epoll_events), timeout_ms); } + } else { if (timeout_ms) usleep (timeout_ms * 1000); - return 0; + goto done; } } @@ -238,7 +239,7 @@ linux_epoll_input_inline (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_panic_with_error (vm, clib_error_return_unix (0, "epoll_wait")); /* non fatal error (e.g. EINTR). */ - return 0; + goto done; } em->epoll_waits += 1; @@ -314,6 +315,13 @@ linux_epoll_input_inline (vlib_main_t * vm, vlib_node_runtime_t * node, } } +done: + 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 (); + } + return 0; } -- cgit 1.2.3-korg