From c36f9b567d6c95a1b099226d322cfc7ffad9b3cc Mon Sep 17 00:00:00 2001 From: Xiaoming Jiang Date: Mon, 12 Dec 2022 02:56:43 +0000 Subject: dpdk: plugin init should be protect by thread barrier Witout thread barrier, when dpdk_process_node initiating dpdk lib, workers thread may also be initiating. Main and workers threads may both setting error_main info, that will cause memory ASAN issue. Type: fix Signed-off-by: Xiaoming Jiang Change-Id: I87b73b310730719035d4985a2cff2e3308120ec2 --- src/plugins/dpdk/device/init.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/plugins/dpdk/device') diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c index d6115009cc0..74181ead11d 100644 --- a/src/plugins/dpdk/device/init.c +++ b/src/plugins/dpdk/device/init.c @@ -1450,6 +1450,7 @@ dpdk_process (vlib_main_t * vm, vlib_node_runtime_t * rt, vlib_frame_t * f) dpdk_device_t *xd; vlib_thread_main_t *tm = vlib_get_thread_main (); + vlib_worker_thread_barrier_sync (vm); error = dpdk_lib_init (dm); if (error) @@ -1466,6 +1467,7 @@ dpdk_process (vlib_main_t * vm, vlib_node_runtime_t * rt, vlib_frame_t * f) } } + vlib_worker_thread_barrier_release (vm); tm->worker_thread_release = 1; f64 now = vlib_time_now (vm); -- cgit 1.2.3-korg