summaryrefslogtreecommitdiffstats
path: root/vnet
diff options
context:
space:
mode:
Diffstat (limited to 'vnet')
-rw-r--r--vnet/vnet/devices/dpdk/device.c43
-rw-r--r--vnet/vnet/devices/dpdk/dpdk.h5
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__ */