diff options
Diffstat (limited to 'vnet')
-rw-r--r-- | vnet/vnet/devices/dpdk/device.c | 43 | ||||
-rw-r--r-- | vnet/vnet/devices/dpdk/dpdk.h | 5 |
2 files changed, 6 insertions, 42 deletions
diff --git a/vnet/vnet/devices/dpdk/device.c b/vnet/vnet/devices/dpdk/device.c index a38c8d1915f..c53d22bf957 100644 --- a/vnet/vnet/devices/dpdk/device.c +++ b/vnet/vnet/devices/dpdk/device.c @@ -1201,7 +1201,7 @@ u32 dpdk_get_admin_up_down_in_progress (void) return dpdk_main.admin_up_down_in_progress; } -static uword +uword admin_up_down_process (vlib_main_t * vm, vlib_node_runtime_t * rt, vlib_frame_t * f) @@ -1267,47 +1267,6 @@ void post_sw_interface_set_flags (vlib_main_t *vm, u32 sw_if_index, u32 flags) } /* - * Called by the dpdk driver's rte_delay_us() function. - * Return 0 to have the dpdk do a regular delay loop. - * Return 1 if to skip the delay loop because we are suspending - * the calling vlib process instead. - */ -int rte_delay_us_override (unsigned us) { - vlib_main_t * vm; - - /* Don't bother intercepting for short delays */ - if (us < 10) return 0; - - /* - * Only intercept if we are in a vlib process. - * If we are called from a vlib worker thread or the vlib main - * thread then do not intercept. (Must not be called from an - * independent pthread). - */ - if (os_get_cpu_number() == 0) - { - /* - * We're in the vlib main thread or a vlib process. Make sure - * the process is running and we're not still initializing. - */ - vm = vlib_get_main(); - if (vlib_in_process_context(vm)) - { - /* Only suspend for the admin_down_process */ - vlib_process_t * proc = vlib_get_current_process(vm); - if (!(proc->flags & VLIB_PROCESS_IS_RUNNING) || - (proc->node_runtime.function != admin_up_down_process)) - return 0; - - f64 delay = 1e-6 * us; - vlib_process_suspend(vm, delay); - return 1; - } - } - return 0; // no override -} - -/* * Return a copy of the DPDK port stats in dest. */ clib_error_t* diff --git a/vnet/vnet/devices/dpdk/dpdk.h b/vnet/vnet/devices/dpdk/dpdk.h index 525cd8d1d6b..2006f6fe149 100644 --- a/vnet/vnet/devices/dpdk/dpdk.h +++ b/vnet/vnet/devices/dpdk/dpdk.h @@ -682,4 +682,9 @@ dpdk_pmd_constructor_init() } +uword +admin_up_down_process (vlib_main_t * vm, + vlib_node_runtime_t * rt, + vlib_frame_t * f); + #endif /* __included_dpdk_h__ */ |