diff options
author | Santosh Shukla <santosh.shukla@linaro.org> | 2015-06-02 19:57:23 +0100 |
---|---|---|
committer | Zoltan Kiss <zoltan.kiss@linaro.org> | 2015-07-09 18:41:16 +0100 |
commit | c2d7451326ac1078850f8b6f66f8c9e7b18c8f5b (patch) | |
tree | 8c79fe56602177544a568eee2803caa79c3c1e43 | |
parent | 5fc406713fdf9cdc52b80a0683f9d6cbcc380e1a (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.c | 3 |
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; } |