]> git.droids-corp.org - dpdk.git/commitdiff
app/crypto: use compiler atomic builtins for display sync
authorJoyce Kong <joyce.kong@arm.com>
Wed, 17 Nov 2021 08:21:56 +0000 (08:21 +0000)
committerDavid Marchand <david.marchand@redhat.com>
Wed, 17 Nov 2021 10:07:06 +0000 (11:07 +0100)
Convert rte_atomic_test_and_set usage to compiler atomic
CAS operation for display sync in crypto cases.

Signed-off-by: Joyce Kong <joyce.kong@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
app/test-crypto-perf/cperf_test_latency.c
app/test-crypto-perf/cperf_test_pmd_cyclecount.c
app/test-crypto-perf/cperf_test_throughput.c
app/test-crypto-perf/cperf_test_verify.c

index 69f55de50adb161a2fb8ebe3f23f1a41372b1d4b..ce49feaba9f3a01c5faec8c35e1d384937b42ade 100644 (file)
@@ -126,7 +126,7 @@ cperf_latency_test_runner(void *arg)
        uint8_t burst_size_idx = 0;
        uint32_t imix_idx = 0;
 
-       static rte_atomic16_t display_once = RTE_ATOMIC16_INIT(0);
+       static uint16_t display_once;
 
        if (ctx == NULL)
                return 0;
@@ -307,8 +307,10 @@ cperf_latency_test_runner(void *arg)
                time_max = tunit*(double)(tsc_max) / tsc_hz;
                time_min = tunit*(double)(tsc_min) / tsc_hz;
 
+               uint16_t exp = 0;
                if (ctx->options->csv) {
-                       if (rte_atomic16_test_and_set(&display_once))
+                       if (__atomic_compare_exchange_n(&display_once, &exp, 1, 0,
+                                       __ATOMIC_RELAXED, __ATOMIC_RELAXED))
                                printf("\n# lcore, Buffer Size, Burst Size, Pakt Seq #, "
                                                "cycles, time (us)");
 
index fda97e8ab9e770499eeaf4be621ce855b0a7ce2b..ba1f104f72fca9799788212ae7c5720ee9278c01 100644 (file)
@@ -404,7 +404,7 @@ cperf_pmd_cyclecount_test_runner(void *test_ctx)
        state.lcore = rte_lcore_id();
        state.linearize = 0;
 
-       static rte_atomic16_t display_once = RTE_ATOMIC16_INIT(0);
+       static uint16_t display_once;
        static bool warmup = true;
 
        /*
@@ -449,8 +449,10 @@ cperf_pmd_cyclecount_test_runner(void *test_ctx)
                        continue;
                }
 
+               uint16_t exp = 0;
                if (!opts->csv) {
-                       if (rte_atomic16_test_and_set(&display_once))
+                       if (__atomic_compare_exchange_n(&display_once, &exp, 1, 0,
+                                       __ATOMIC_RELAXED, __ATOMIC_RELAXED))
                                printf(PRETTY_HDR_FMT, "lcore id", "Buf Size",
                                                "Burst Size", "Enqueued",
                                                "Dequeued", "Enq Retries",
@@ -466,7 +468,8 @@ cperf_pmd_cyclecount_test_runner(void *test_ctx)
                                        state.cycles_per_enq,
                                        state.cycles_per_deq);
                } else {
-                       if (rte_atomic16_test_and_set(&display_once))
+                       if (__atomic_compare_exchange_n(&display_once, &exp, 1, 0,
+                                       __ATOMIC_RELAXED, __ATOMIC_RELAXED))
                                printf(CSV_HDR_FMT, "# lcore id", "Buf Size",
                                                "Burst Size", "Enqueued",
                                                "Dequeued", "Enq Retries",
index 739ed9e57350a07985c732ab39a9f82c204201c8..51512af2ad81a1b40a6eabab57997449561385aa 100644 (file)
@@ -113,7 +113,7 @@ cperf_throughput_test_runner(void *test_ctx)
        uint8_t burst_size_idx = 0;
        uint32_t imix_idx = 0;
 
-       static rte_atomic16_t display_once = RTE_ATOMIC16_INIT(0);
+       static uint16_t display_once;
 
        struct rte_crypto_op *ops[ctx->options->max_burst_size];
        struct rte_crypto_op *ops_processed[ctx->options->max_burst_size];
@@ -281,8 +281,10 @@ cperf_throughput_test_runner(void *test_ctx)
                double cycles_per_packet = ((double)tsc_duration /
                                ctx->options->total_ops);
 
+               uint16_t exp = 0;
                if (!ctx->options->csv) {
-                       if (rte_atomic16_test_and_set(&display_once))
+                       if (__atomic_compare_exchange_n(&display_once, &exp, 1, 0,
+                                       __ATOMIC_RELAXED, __ATOMIC_RELAXED))
                                printf("%12s%12s%12s%12s%12s%12s%12s%12s%12s%12s\n\n",
                                        "lcore id", "Buf Size", "Burst Size",
                                        "Enqueued", "Dequeued", "Failed Enq",
@@ -302,7 +304,8 @@ cperf_throughput_test_runner(void *test_ctx)
                                        throughput_gbps,
                                        cycles_per_packet);
                } else {
-                       if (rte_atomic16_test_and_set(&display_once))
+                       if (__atomic_compare_exchange_n(&display_once, &exp, 1, 0,
+                                       __ATOMIC_RELAXED, __ATOMIC_RELAXED))
                                printf("#lcore id,Buffer Size(B),"
                                        "Burst Size,Enqueued,Dequeued,Failed Enq,"
                                        "Failed Deq,Ops(Millions),Throughput(Gbps),"
index 1962438034104bf098bc6137fd0f700d9a54dcaa..496eb0de00f06318e0db7fd5b1d11356882cacf6 100644 (file)
@@ -241,7 +241,7 @@ cperf_verify_test_runner(void *test_ctx)
        uint64_t ops_deqd = 0, ops_deqd_total = 0, ops_deqd_failed = 0;
        uint64_t ops_failed = 0;
 
-       static rte_atomic16_t display_once = RTE_ATOMIC16_INIT(0);
+       static uint16_t display_once;
 
        uint64_t i;
        uint16_t ops_unused = 0;
@@ -383,8 +383,10 @@ cperf_verify_test_runner(void *test_ctx)
                ops_deqd_total += ops_deqd;
        }
 
+       uint16_t exp = 0;
        if (!ctx->options->csv) {
-               if (rte_atomic16_test_and_set(&display_once))
+               if (__atomic_compare_exchange_n(&display_once, &exp, 1, 0,
+                               __ATOMIC_RELAXED, __ATOMIC_RELAXED))
                        printf("%12s%12s%12s%12s%12s%12s%12s%12s\n\n",
                                "lcore id", "Buf Size", "Burst size",
                                "Enqueued", "Dequeued", "Failed Enq",
@@ -401,7 +403,8 @@ cperf_verify_test_runner(void *test_ctx)
                                ops_deqd_failed,
                                ops_failed);
        } else {
-               if (rte_atomic16_test_and_set(&display_once))
+               if (__atomic_compare_exchange_n(&display_once, &exp, 1, 0,
+                               __ATOMIC_RELAXED, __ATOMIC_RELAXED))
                        printf("\n# lcore id, Buffer Size(B), "
                                "Burst Size,Enqueued,Dequeued,Failed Enq,"
                                "Failed Deq,Failed Ops\n");