X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Fsession_debug.c;h=e4efe1b244e30ecad7f71096be4f21d326e8f97a;hb=10e5b4a016061f2d9485ff309d1239abb012aae0;hp=349d1ec9b46360cda7813392df6aaa06f017159c;hpb=6ffb7c61899eb782416cbd2f117042a583f189f7;p=vpp.git diff --git a/src/vnet/session/session_debug.c b/src/vnet/session/session_debug.c index 349d1ec9b46..e4efe1b244e 100644 --- a/src/vnet/session/session_debug.c +++ b/src/vnet/session/session_debug.c @@ -61,6 +61,13 @@ VLIB_CLI_COMMAND (show_session_dbg_clock_cycles_command, static) = }; /* *INDENT-ON* */ +static_always_inline f64 +session_dbg_time_now (u32 thread) +{ + vlib_main_t *vm = vlib_get_main_by_index (thread); + + return clib_time_now (&vm->clib_time) + vm->time_offset; +} static clib_error_t * clear_session_dbg_clock_cycles_fn (vlib_main_t * vm, unformat_input_t * input, @@ -77,7 +84,7 @@ clear_session_dbg_clock_cycles_fn (vlib_main_t * vm, unformat_input_t * input, { sde = &session_dbg_main.wrk[thread]; clib_memset (sde, 0, sizeof (session_dbg_evts_t)); - sde->last_time = vlib_time_now (vlib_mains[thread]); + sde->last_time = session_dbg_time_now (thread); sde->start_time = sde->last_time; } @@ -107,7 +114,7 @@ session_debug_init (void) for (thread = 0; thread < num_threads; thread++) { clib_memset (&sdm->wrk[thread], 0, sizeof (session_dbg_evts_t)); - sdm->wrk[thread].start_time = vlib_time_now (vlib_mains[thread]); + sdm->wrk[thread].start_time = session_dbg_time_now (thread); } } #else @@ -144,6 +151,8 @@ dump_thread_0_event_queue (void) { case SESSION_IO_EVT_TX: s0 = session_get_if_valid (e->session_index, my_thread_index); + if (!s0) + break; fformat (stdout, "[%04d] TX session %d\n", i, s0->session_index); break; @@ -155,6 +164,8 @@ dump_thread_0_event_queue (void) case SESSION_IO_EVT_BUILTIN_RX: s0 = session_get_if_valid (e->session_index, my_thread_index); + if (!s0) + break; fformat (stdout, "[%04d] builtin_rx %d\n", i, s0->session_index); break; @@ -180,7 +191,6 @@ dump_thread_0_event_queue (void) static u8 session_node_cmp_event (session_event_t * e, svm_fifo_t * f) { - session_t *s; switch (e->event_type) { case SESSION_IO_EVT_RX: @@ -192,16 +202,7 @@ session_node_cmp_event (session_event_t * e, svm_fifo_t * f) return 1; break; case SESSION_CTRL_EVT_CLOSE: - break; case SESSION_CTRL_EVT_RPC: - s = session_get_from_handle (e->session_handle); - if (!s) - { - clib_warning ("session has event but doesn't exist!"); - break; - } - if (s->rx_fifo == f || s->tx_fifo == f) - return 1; break; default: break;