This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, master has been updated via 5d35ffb5d02c6d3f4cabd170969846b56878f8fd (commit) via 24c6e10cba9d6efeaf13e4ea2a7a422764ae5eb2 (commit) from b18dc645a68fd0ae50f1a361aa408b3e74e46c0d (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 5d35ffb5d02c6d3f4cabd170969846b56878f8fd Author: Matias Elo matias.elo@nokia.com Date: Wed Jan 4 14:02:42 2017 +0200
validation: free reserved shared memory blocks
Previously all reserverd shared memory blocks were not freed.
Signed-off-by: Matias Elo matias.elo@nokia.com Reviewed-and-tested-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/test/common_plat/validation/api/atomic/atomic.c b/test/common_plat/validation/api/atomic/atomic.c index c4e9345..db9484b 100644 --- a/test/common_plat/validation/api/atomic/atomic.c +++ b/test/common_plat/validation/api/atomic/atomic.c @@ -583,6 +583,29 @@ int atomic_init(odp_instance_t *inst) return ret; }
+int atomic_term(odp_instance_t inst) +{ + odp_shm_t shm; + + shm = odp_shm_lookup(GLOBAL_SHM_NAME); + if (0 != odp_shm_free(shm)) { + fprintf(stderr, "error: odp_shm_free() failed.\n"); + return -1; + } + + if (0 != odp_term_local()) { + fprintf(stderr, "error: odp_term_local() failed.\n"); + return -1; + } + + if (0 != odp_term_global(inst)) { + fprintf(stderr, "error: odp_term_global() failed.\n"); + return -1; + } + + return 0; +} + /* Atomic tests */ static int test_atomic_inc_dec_thread(void *arg UNUSED) { @@ -875,6 +898,7 @@ int atomic_main(int argc, char *argv[]) return -1;
odp_cunit_register_global_init(atomic_init); + odp_cunit_register_global_term(atomic_term);
ret = odp_cunit_register(atomic_suites);
diff --git a/test/common_plat/validation/api/atomic/atomic.h b/test/common_plat/validation/api/atomic/atomic.h index 4ea837b..66796c8 100644 --- a/test/common_plat/validation/api/atomic/atomic.h +++ b/test/common_plat/validation/api/atomic/atomic.h @@ -31,6 +31,7 @@ extern odp_suiteinfo_t atomic_suites[];
/* executable init/term functions: */ int atomic_init(odp_instance_t *inst); +int atomic_term(odp_instance_t inst);
/* main test program: */ int atomic_main(int argc, char *argv[]); diff --git a/test/common_plat/validation/api/barrier/barrier.c b/test/common_plat/validation/api/barrier/barrier.c index d458388..79ee82b 100644 --- a/test/common_plat/validation/api/barrier/barrier.c +++ b/test/common_plat/validation/api/barrier/barrier.c @@ -372,6 +372,29 @@ int barrier_init(odp_instance_t *inst) return ret; }
+int barrier_term(odp_instance_t inst) +{ + odp_shm_t shm; + + shm = odp_shm_lookup(GLOBAL_SHM_NAME); + if (0 != odp_shm_free(shm)) { + fprintf(stderr, "error: odp_shm_free() failed.\n"); + return -1; + } + + if (0 != odp_term_local()) { + fprintf(stderr, "error: odp_term_local() failed.\n"); + return -1; + } + + if (0 != odp_term_global(inst)) { + fprintf(stderr, "error: odp_term_global() failed.\n"); + return -1; + } + + return 0; +} + odp_suiteinfo_t barrier_suites[] = { {"barrier", NULL, NULL, barrier_suite_barrier}, @@ -387,6 +410,7 @@ int barrier_main(int argc, char *argv[]) return -1;
odp_cunit_register_global_init(barrier_init); + odp_cunit_register_global_term(barrier_term);
ret = odp_cunit_register(barrier_suites);
diff --git a/test/common_plat/validation/api/barrier/barrier.h b/test/common_plat/validation/api/barrier/barrier.h index e4890e0..188bcb8 100644 --- a/test/common_plat/validation/api/barrier/barrier.h +++ b/test/common_plat/validation/api/barrier/barrier.h @@ -22,6 +22,7 @@ extern odp_suiteinfo_t barrier_suites[];
/* executable init/term functions: */ int barrier_init(odp_instance_t *inst); +int barrier_term(odp_instance_t inst);
/* main test program: */ int barrier_main(int argc, char *argv[]); diff --git a/test/common_plat/validation/api/lock/lock.c b/test/common_plat/validation/api/lock/lock.c index a668a31..bd9a2aa 100644 --- a/test/common_plat/validation/api/lock/lock.c +++ b/test/common_plat/validation/api/lock/lock.c @@ -1189,6 +1189,29 @@ int lock_init(odp_instance_t *inst) return ret; }
+int lock_term(odp_instance_t inst) +{ + odp_shm_t shm; + + shm = odp_shm_lookup(GLOBAL_SHM_NAME); + if (0 != odp_shm_free(shm)) { + fprintf(stderr, "error: odp_shm_free() failed.\n"); + return -1; + } + + if (0 != odp_term_local()) { + fprintf(stderr, "error: odp_term_local() failed.\n"); + return -1; + } + + if (0 != odp_term_global(inst)) { + fprintf(stderr, "error: odp_term_global() failed.\n"); + return -1; + } + + return 0; +} + odp_suiteinfo_t lock_suites[] = { {"nolocking", lock_suite_init, NULL, lock_suite_no_locking}, /* must be first */ @@ -1214,6 +1237,7 @@ int lock_main(int argc, char *argv[]) return -1;
odp_cunit_register_global_init(lock_init); + odp_cunit_register_global_term(lock_term);
ret = odp_cunit_register(lock_suites);
diff --git a/test/common_plat/validation/api/lock/lock.h b/test/common_plat/validation/api/lock/lock.h index 5adc633..e0f4972 100644 --- a/test/common_plat/validation/api/lock/lock.h +++ b/test/common_plat/validation/api/lock/lock.h @@ -38,6 +38,7 @@ extern odp_suiteinfo_t lock_suites[];
/* executable init/term functions: */ int lock_init(odp_instance_t *inst); +int lock_term(odp_instance_t inst);
/* main test program: */ int lock_main(int argc, char *argv[]); diff --git a/test/common_plat/validation/api/scheduler/scheduler.c b/test/common_plat/validation/api/scheduler/scheduler.c index 919cfb6..734135e 100644 --- a/test/common_plat/validation/api/scheduler/scheduler.c +++ b/test/common_plat/validation/api/scheduler/scheduler.c @@ -1577,6 +1577,7 @@ static int destroy_queues(void) int scheduler_suite_term(void) { odp_pool_t pool; + odp_shm_t shm;
if (destroy_queues() != 0) { fprintf(stderr, "error: failed to destroy queues\n"); @@ -1587,6 +1588,14 @@ int scheduler_suite_term(void) if (odp_pool_destroy(pool) != 0) fprintf(stderr, "error: failed to destroy pool\n");
+ shm = odp_shm_lookup(SHM_THR_ARGS_NAME); + if (odp_shm_free(shm) != 0) + fprintf(stderr, "error: failed to free shm\n"); + + shm = odp_shm_lookup(GLOBALS_SHM_NAME); + if (odp_shm_free(shm) != 0) + fprintf(stderr, "error: failed to free shm\n"); + return 0; }
commit 24c6e10cba9d6efeaf13e4ea2a7a422764ae5eb2 Author: Matias Elo matias.elo@nokia.com Date: Wed Jan 4 14:02:41 2017 +0200
example: free reserved shared memory blocks
Previously all reserverd shared memory blocks were not freed.
Signed-off-by: Matias Elo matias.elo@nokia.com Reviewed-and-tested-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/example/generator/odp_generator.c b/example/generator/odp_generator.c index 48d7f5f..1c64765 100644 --- a/example/generator/odp_generator.c +++ b/example/generator/odp_generator.c @@ -897,6 +897,8 @@ int main(int argc, char *argv[]) odp_timer_pool_destroy(tp); if (0 != odp_pool_destroy(tmop)) fprintf(stderr, "unable to destroy pool "tmop"\n"); + if (0 != odp_shm_free(shm)) + fprintf(stderr, "unable to free "shm"\n"); odp_term_local(); odp_term_global(instance); printf("Exit\n\n"); diff --git a/example/ipsec/odp_ipsec.c b/example/ipsec/odp_ipsec.c index 6a9a9fe..76ced49 100644 --- a/example/ipsec/odp_ipsec.c +++ b/example/ipsec/odp_ipsec.c @@ -1361,6 +1361,32 @@ main(int argc, char *argv[])
free(args->appl.if_names); free(args->appl.if_str); + + shm = odp_shm_lookup("shm_args"); + if (odp_shm_free(shm) != 0) + EXAMPLE_ERR("Error: shm free shm_args failed\n"); + shm = odp_shm_lookup("shm_ipsec_cache"); + if (odp_shm_free(shm) != 0) + EXAMPLE_ERR("Error: shm free shm_ipsec_cache failed\n"); + shm = odp_shm_lookup("shm_fwd_db"); + if (odp_shm_free(shm) != 0) + EXAMPLE_ERR("Error: shm free shm_fwd_db failed\n"); + shm = odp_shm_lookup("loopback_db"); + if (odp_shm_free(shm) != 0) + EXAMPLE_ERR("Error: shm free loopback_db failed\n"); + shm = odp_shm_lookup("shm_sa_db"); + if (odp_shm_free(shm) != 0) + EXAMPLE_ERR("Error: shm free shm_sa_db failed\n"); + shm = odp_shm_lookup("shm_tun_db"); + if (odp_shm_free(shm) != 0) + EXAMPLE_ERR("Error: shm free shm_tun_db failed\n"); + shm = odp_shm_lookup("shm_sp_db"); + if (odp_shm_free(shm) != 0) + EXAMPLE_ERR("Error: shm free shm_sp_db failed\n"); + shm = odp_shm_lookup("stream_db"); + if (odp_shm_free(shm) != 0) + EXAMPLE_ERR("Error: shm free stream_db failed\n"); + printf("Exit\n\n");
return 0; diff --git a/example/l3fwd/odp_l3fwd.c b/example/l3fwd/odp_l3fwd.c index 8919bd3..441e812 100644 --- a/example/l3fwd/odp_l3fwd.c +++ b/example/l3fwd/odp_l3fwd.c @@ -942,6 +942,7 @@ int main(int argc, char **argv) odph_odpthread_t thread_tbl[MAX_NB_WORKER]; odp_pool_t pool; odp_pool_param_t params; + odp_shm_t shm; odp_instance_t instance; odph_odpthread_params_t thr_params; odp_cpumask_t cpumask; @@ -1119,6 +1120,22 @@ int main(int argc, char **argv) for (i = 0; i < MAX_NB_ROUTE; i++) free(args->route_str[i]);
+ shm = odp_shm_lookup("flow_table"); + if (shm != ODP_SHM_INVALID && odp_shm_free(shm) != 0) { + printf("Error: shm free flow_table\n"); + exit(EXIT_FAILURE); + } + shm = odp_shm_lookup("shm_fwd_db"); + if (shm != ODP_SHM_INVALID && odp_shm_free(shm) != 0) { + printf("Error: shm free shm_fwd_db\n"); + exit(EXIT_FAILURE); + } + shm = odp_shm_lookup("fib_lpm_sub"); + if (shm != ODP_SHM_INVALID && odp_shm_free(shm) != 0) { + printf("Error: shm free fib_lpm_sub\n"); + exit(EXIT_FAILURE); + } + if (odp_pool_destroy(pool)) { printf("Error: pool destroy\n"); exit(EXIT_FAILURE); diff --git a/example/switch/odp_switch.c b/example/switch/odp_switch.c index 4b944fe..f9c7176 100644 --- a/example/switch/odp_switch.c +++ b/example/switch/odp_switch.c @@ -1039,6 +1039,11 @@ int main(int argc, char **argv) exit(EXIT_FAILURE); }
+ if (odp_shm_free(shm)) { + printf("Error: shm free\n"); + exit(EXIT_FAILURE); + } + if (odp_term_local()) { printf("Error: term local\n"); exit(EXIT_FAILURE); diff --git a/test/common_plat/performance/odp_l2fwd.c b/test/common_plat/performance/odp_l2fwd.c index 651ed10..8dc4dbe 100644 --- a/test/common_plat/performance/odp_l2fwd.c +++ b/test/common_plat/performance/odp_l2fwd.c @@ -1507,6 +1507,11 @@ int main(int argc, char *argv[]) exit(EXIT_FAILURE); }
+ if (odp_shm_free(shm)) { + LOG_ERR("Error: shm free\n"); + exit(EXIT_FAILURE); + } + if (odp_term_local()) { LOG_ERR("Error: term local\n"); exit(EXIT_FAILURE); diff --git a/test/common_plat/performance/odp_pktio_perf.c b/test/common_plat/performance/odp_pktio_perf.c index 6db02e0..84ab779 100644 --- a/test/common_plat/performance/odp_pktio_perf.c +++ b/test/common_plat/performance/odp_pktio_perf.c @@ -891,6 +891,14 @@ static int test_term(void) LOG_ERR("Failed to free test_globals\n"); ret = -1; } + if (odp_shm_free(odp_shm_lookup("test_globals.rx_stats")) != 0) { + LOG_ERR("Failed to free test_globals.rx_stats\n"); + ret = -1; + } + if (odp_shm_free(odp_shm_lookup("test_globals.tx_stats")) != 0) { + LOG_ERR("Failed to free test_globals.tx_stats\n"); + ret = -1; + }
return ret; }
-----------------------------------------------------------------------
Summary of changes: example/generator/odp_generator.c | 2 ++ example/ipsec/odp_ipsec.c | 26 ++++++++++++++++++++++ example/l3fwd/odp_l3fwd.c | 17 ++++++++++++++ example/switch/odp_switch.c | 5 +++++ test/common_plat/performance/odp_l2fwd.c | 5 +++++ test/common_plat/performance/odp_pktio_perf.c | 8 +++++++ test/common_plat/validation/api/atomic/atomic.c | 24 ++++++++++++++++++++ test/common_plat/validation/api/atomic/atomic.h | 1 + test/common_plat/validation/api/barrier/barrier.c | 24 ++++++++++++++++++++ test/common_plat/validation/api/barrier/barrier.h | 1 + test/common_plat/validation/api/lock/lock.c | 24 ++++++++++++++++++++ test/common_plat/validation/api/lock/lock.h | 1 + .../validation/api/scheduler/scheduler.c | 9 ++++++++ 13 files changed, 147 insertions(+)
hooks/post-receive