X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Ftest_hash_multiwriter.c;h=0c5a8ca1860778bb23d7539bff23ab2848532df1;hb=f0243339496d48e6f5d76e6ef6741d6986b965d0;hp=50018db56c86874fb2f3d7320b5803f289782d8e;hpb=a9de470cc7c0649221e156fc5f30a2dbdfe7c166;p=dpdk.git diff --git a/app/test/test_hash_multiwriter.c b/app/test/test_hash_multiwriter.c index 50018db56c..0c5a8ca186 100644 --- a/app/test/test_hash_multiwriter.c +++ b/app/test/test_hash_multiwriter.c @@ -43,8 +43,8 @@ const uint32_t nb_entries = 5*1024*1024; const uint32_t nb_total_tsx_insertion = 4.5*1024*1024; uint32_t rounded_nb_total_tsx_insertion; -static rte_atomic64_t gcycles; -static rte_atomic64_t ginsertions; +static uint64_t gcycles; +static uint64_t ginsertions; static int use_htm; @@ -64,7 +64,7 @@ test_hash_multiwriter_worker(void *arg) /* * Calculate offset for entries based on the position of the - * logical core, from the master core (not counting not enabled cores) + * logical core, from the main core (not counting not enabled cores) */ offset = pos_core * tbl_multiwriter_test_params.nb_tsx_insertion; @@ -84,8 +84,8 @@ test_hash_multiwriter_worker(void *arg) } cycles = rte_rdtsc_precise() - begin; - rte_atomic64_add(&gcycles, cycles); - rte_atomic64_add(&ginsertions, i - offset); + __atomic_fetch_add(&gcycles, cycles, __ATOMIC_RELAXED); + __atomic_fetch_add(&ginsertions, i - offset, __ATOMIC_RELAXED); for (; i < offset + tbl_multiwriter_test_params.nb_tsx_insertion; i++) tbl_multiwriter_test_params.keys[i] @@ -168,11 +168,8 @@ test_hash_multiwriter(void) tbl_multiwriter_test_params.found = found; - rte_atomic64_init(&gcycles); - rte_atomic64_clear(&gcycles); - - rte_atomic64_init(&ginsertions); - rte_atomic64_clear(&ginsertions); + __atomic_store_n(&gcycles, 0, __ATOMIC_RELAXED); + __atomic_store_n(&ginsertions, 0, __ATOMIC_RELAXED); /* Get list of enabled cores */ i = 0; @@ -194,7 +191,7 @@ test_hash_multiwriter(void) /* Fire all threads. */ rte_eal_mp_remote_launch(test_hash_multiwriter_worker, - enabled_core_ids, CALL_MASTER); + enabled_core_ids, CALL_MAIN); rte_eal_mp_wait_lcore(); count = rte_hash_count(handle); @@ -238,8 +235,8 @@ test_hash_multiwriter(void) printf("No key corrupted during multiwriter insertion.\n"); unsigned long long int cycles_per_insertion = - rte_atomic64_read(&gcycles)/ - rte_atomic64_read(&ginsertions); + __atomic_load_n(&gcycles, __ATOMIC_RELAXED)/ + __atomic_load_n(&ginsertions, __ATOMIC_RELAXED); printf(" cycles per insertion: %llu\n", cycles_per_insertion); @@ -260,12 +257,11 @@ err1: static int test_hash_multiwriter_main(void) { - if (rte_lcore_count() == 1) { - printf("More than one lcore is required to do multiwriter test\n"); - return 0; + if (rte_lcore_count() < 2) { + printf("Not enough cores for distributor_autotest, expecting at least 2\n"); + return TEST_SKIPPED; } - setlocale(LC_NUMERIC, "");