From 708ae49d7a1ff8341152dc7ee7f3a5abafb2d2c0 Mon Sep 17 00:00:00 2001 From: Michal Mazur Date: Tue, 20 Feb 2018 17:48:07 +0100 Subject: plugins: odp: [WA] Force inline mode of ODP timer This is a workaround for following VPP error: "Program terminated with signal SIGUSR1, User defined signal 1." It changes mode of timers used by ODP schedule mode. By default inline_timers is false and timer_res_init (odp_timer.c) is called to adjust timer resolution. This function uses SIGUSR1 during the process which collides with VPP as it uses the same signal for communication with clients. This patch causes inline_timers to be set and disables adjustment of timer resolution. Change-Id: Ic2225ba736f506a86832519f9c4154cee9c06056 Signed-off-by: Michal Mazur --- src/plugins/odp/odp_packet.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/plugins/odp/odp_packet.c b/src/plugins/odp/odp_packet.c index 45f2f272..76ef9796 100755 --- a/src/plugins/odp/odp_packet.c +++ b/src/plugins/odp/odp_packet.c @@ -512,8 +512,12 @@ odp_packet_init (vlib_main_t * vm) odp_pool_capability_t capa; odp_shm_t shm; odp_instance_t instance; + odp_init_t init_params; - if (odp_init_global (&instance, NULL, NULL)) + odp_init_param_init (&init_params); + init_params.not_used.feat.timer = 0; + init_params.not_used.feat.schedule = 0; + if (odp_init_global (&instance, &init_params, NULL)) clib_warning ("Error: ODP global init failed"); if (odp_init_local (instance, ODP_THREAD_CONTROL) != 0) -- cgit 1.2.3-korg