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 18:41:16 +0100
commitc2d7451326ac1078850f8b6f66f8c9e7b18c8f5b (patch)
tree8c79fe56602177544a568eee2803caa79c3c1e43
parent5fc406713fdf9cdc52b80a0683f9d6cbcc380e1a (diff)
dpif-netdev: add support for graceful termination api
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 453967717..2958d5217 100644
--- a/lib/dpif-netdev.c
+++ b/lib/dpif-netdev.c
@@ -2724,6 +2724,9 @@ reload:
emc_cache_uninit(&pmd->flow_cache);
if (!latch_is_set(&pmd->exit_latch)){
+#ifdef ODP_NETDEV
+ odp_term_local();
+#endif
goto reload;
}