aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSantosh Shukla <santosh.shukla@linaro.org>2015-06-02 19:57:23 +0100
committerZoltan Kiss <zoltan.kiss@linaro.org>2015-07-09 14:48:32 +0100
commitb1e953b38da8963253ea9c74159efdd826500adc (patch)
treeba49aa72bfb61a58035834160f5ca0350a6d290a
parent834c52595ad052b195c8c5b1346799c867858752 (diff)
dpif-netdev: add support for graceful termination apiodp-v0-squashed
I hit this problem reported by odp-ovs: 2015-05-29T21:38:02.463Z|00034|odp(pmd99)|ERR|odp_thread.c:179:odp_thread_init_local():odp_thread_init_local : thd_is : 127 cpu : 9 2015-05-29T21:38:02.464Z|00033|odp(pmd105)|ERR|odp_thread.c:168:odp_thread_init_local():Too many threads 2015-05-29T21:38:02.465Z|00034|odp(pmd105)|ERR|odp_init.c:168:odp_init_local():ODP thread local init failed. This happens when user create multiple ports and delete them. Due to lack of termination, ODP keep on giving alloc_id in sequence from 0--127, and pretty soon it reachs ODP_CONFIG_MAX_THREADS Below fix address this problem. Also avoid ovs-vsctl del-br br0 stalling problem when alloc_id > ODP_CONFIG_MAX_THREADS. Signed-off-by: Zoltan Kiss <zoltan.kiss@linaro.org> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org>
-rw-r--r--lib/dpif-netdev.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
index 9aa78ce2a..c78f88067 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -2401,6 +2401,9 @@ reload:
emc_cache_uninit(&pmd->flow_cache);
if (!latch_is_set(&pmd->exit_latch)){
+#ifdef ODP_NETDEV
+ odp_term_local();
+#endif
goto reload;
}