Did you review  [PATCHv8 00/12] IPC (pktio) patches as we discussed before?

I don't want to kill test for odp_ring. Patch:

[PATCHv8 06/12] linux-generic: move odp_ring from helper to linux-generic platfrom

moves it to platform internal test.

Event if we don't agree to include pktio ipc yet, then patches 4 - 10 do all that work and good
to be included. Please review them.

Best regards,
Maxim.


On 09/04/15 22:57, Bill Fischofer wrote:


On Fri, Sep 4, 2015 at 1:37 PM, Mike Holmes <[email protected] <mailto:[email protected]>> wrote:

    The api_test directory is unmaintained and not part of any regression.
    The ring test it contains is broken and needs to be reworked and
    applied
    to the helper tests. The helper test regression tracks the lack of the
    ring test and so there is no value in retaining the stale code.

    Signed-off-by: Mike Holmes <[email protected]
    <mailto:[email protected]>>
    ---


Reviewed-by: Bill Fischofer <[email protected] <mailto:[email protected]>>

    configure.ac <http://configure.ac>           |   1 -
     test/Makefile.am              |   2 +-
     test/api_test/.gitignore      |   2 -
     test/api_test/Makefile.am     |  13 --
     test/api_test/odp_common.c    |  91 --------
     test/api_test/odp_common.h    |  42 ----
     test/api_test/odp_ring_test.c | 470
    ------------------------------------------
     7 files changed, 1 insertion(+), 620 deletions(-)
     delete mode 100644 test/api_test/.gitignore
     delete mode 100644 test/api_test/Makefile.am
     delete mode 100644 test/api_test/odp_common.c
     delete mode 100644 test/api_test/odp_common.h
     delete mode 100644 test/api_test/odp_ring_test.c

    diff --git a/configure.ac <http://configure.ac> b/configure.ac
    <http://configure.ac>
    index 15dc6cf..d90b09b 100644
    --- a/configure.ac <http://configure.ac>
    +++ b/configure.ac <http://configure.ac>
    @@ -292,7 +292,6 @@ AC_CONFIG_FILES([Makefile
                     pkgconfig/libodphelper.pc
                     scripts/Makefile
                     test/Makefile
    -                test/api_test/Makefile
                     test/performance/Makefile
                     test/validation/Makefile
                     test/validation/buffer/Makefile
    diff --git a/test/Makefile.am b/test/Makefile.am
    index 2ba8008..4a75364 100644
    --- a/test/Makefile.am
    +++ b/test/Makefile.am
    @@ -1,4 +1,4 @@
    -SUBDIRS = api_test performance miscellaneous
    +SUBDIRS = performance miscellaneous

     if cunit_support
         SUBDIRS += validation
    diff --git a/test/api_test/.gitignore b/test/api_test/.gitignore
    deleted file mode 100644
    index 950f443..0000000
    --- a/test/api_test/.gitignore
    +++ /dev/null
    @@ -1,2 +0,0 @@
    -odp_ring
    -odp_shm
    diff --git a/test/api_test/Makefile.am b/test/api_test/Makefile.am
    deleted file mode 100644
    index fcdba48..0000000
    --- a/test/api_test/Makefile.am
    +++ /dev/null
    @@ -1,13 +0,0 @@
    -include $(top_srcdir)/test/Makefile.inc
    -
    -bin_PROGRAMS = odp_ring$(EXEEXT)
    -
    -odp_ring_CFLAGS = $(AM_CFLAGS)
    -
    -odp_ring_LDFLAGS = $(AM_LDFLAGS) -static
    -
    -noinst_HEADERS = \
    -                 $(top_srcdir)/test/api_test/odp_common.h \
    -                 $(top_srcdir)/test/test_debug.h
    -
    -dist_odp_ring_SOURCES = odp_ring_test.c odp_common.c
    diff --git a/test/api_test/odp_common.c b/test/api_test/odp_common.c
    deleted file mode 100644
    index 0dbefa5..0000000
    --- a/test/api_test/odp_common.c
    +++ /dev/null
    @@ -1,91 +0,0 @@
    -/* Copyright (c) 2013, Linaro Limited
    - * All rights reserved.
    - *
    - * SPDX-License-Identifier:     BSD-3-Clause
    - */
    -
    -/**
    - * @file
    - *
    - * ODP test application common
    - */
    -
    -#include <string.h>
    -#include <odp.h>
    -#include <odp/helper/linux.h>
    -#include <odp_common.h>
    -#include <test_debug.h>
    -
    -#define MAX_WORKERS           32            /**< Max worker
    threads */
    -
    -/* Globals */
    -static odph_linux_pthread_t thread_tbl[MAX_WORKERS]; /**< worker
    threads table*/
    -static int num_workers;   /**< number of workers      */
    -
    -/**
    - * Print system information
    - */
    -void odp_print_system_info(void)
    -{
    -       odp_cpumask_t cpumask;
    -       char str[ODP_CPUMASK_STR_SIZE];
    -
    -       memset(str, 1, sizeof(str));
    -
    -       odp_cpumask_zero(&cpumask);
    -
    -       odp_cpumask_from_str(&cpumask, "0x1");
    -       (void)odp_cpumask_to_str(&cpumask, str, sizeof(str));
    -
    -       printf("\n");
    -       printf("ODP system info\n");
    -       printf("---------------\n");
    -       printf("ODP API version: %s\n", odp_version_api_str());
    -       printf("CPU model:       %s\n", odp_sys_cpu_model_str());
    -       printf("CPU freq (hz):   %"PRIu64"\n", odp_sys_cpu_hz());
    -       printf("Cache line size: %i\n", odp_sys_cache_line_size());
    -       printf("CPU count:       %i\n", odp_cpu_count());
    -       printf("CPU mask:        %s\n",        str);
    -
    -       printf("\n");
    -}
    -
    -/** test init globals and call odp_init_global() */
    -int odp_test_global_init(void)
    -{
    -       memset(thread_tbl, 0, sizeof(thread_tbl));
    -
    -       if (odp_init_global(NULL, NULL)) {
    -               LOG_ERR("ODP global init failed.\n");
    -               return -1;
    -       }
    -
    -       num_workers = odp_cpu_count();
    -       /* force to max CPU count */
    -       if (num_workers > MAX_WORKERS)
    -               num_workers = MAX_WORKERS;
    -
    -       return 0;
    -}
    -
    -/** create test thread */
    -int odp_test_thread_create(void *func_ptr(void *), pthrd_arg *arg)
    -{
    -       odp_cpumask_t cpumask;
    -
    -       /* Create and init additional threads */
    -       odp_cpumask_def_worker(&cpumask, arg->numthrds);
    -       odph_linux_pthread_create(thread_tbl, &cpumask, func_ptr,
    -                                 (void *)arg);
    -
    -       return 0;
    -}
    -
    -/** exit from test thread */
    -int odp_test_thread_exit(pthrd_arg *arg)
    -{
    -       /* Wait for other threads to exit */
    -       odph_linux_pthread_join(thread_tbl, arg->numthrds);
    -
    -       return 0;
    -}
    diff --git a/test/api_test/odp_common.h b/test/api_test/odp_common.h
    deleted file mode 100644
    index f321b6b..0000000
    --- a/test/api_test/odp_common.h
    +++ /dev/null
    @@ -1,42 +0,0 @@
    -/* Copyright (c) 2013, Linaro Limited
    - * All rights reserved.
    - *
    - * SPDX-License-Identifier:     BSD-3-Clause
    - */
    -
    -/**
    - * @file
    - *
    - * ODP test application common headers
    - */
    -
    -#ifndef ODP_COMMON_H
    -#define ODP_COMMON_H
    -
    -#define MAX_WORKERS 32 /**< Maximum number of work threads */
    -
    -/** types of tests */
    -typedef enum {
    -       ODP_ATOMIC_TEST = 0,
    -       ODP_SHM_TEST,
    -       ODP_RING_TEST_BASIC,
    -       ODP_RING_TEST_STRESS,
    -       ODP_TIMER_PING_TEST,
    -       ODP_MAX_TEST
    -} odp_test_case_e;
    -
    -/**
    - * Thread argument
    - */
    -typedef struct {
    -       int testcase; /**< specifies which set of API's to exercise */
    -       int numthrds; /**< no of pthreads to create */
    -} pthrd_arg;
    -
    -extern void odp_print_system_info(void);
    -extern int odp_test_global_init(void);
    -/** create thread fro start_routine function */
    -extern int odp_test_thread_create(void *(*start_routine) (void
    *), pthrd_arg *);
    -extern int odp_test_thread_exit(pthrd_arg *);
    -
    -#endif /* ODP_COMMON_H */
    diff --git a/test/api_test/odp_ring_test.c
    b/test/api_test/odp_ring_test.c
    deleted file mode 100644
    index e8a962a..0000000
    --- a/test/api_test/odp_ring_test.c
    +++ /dev/null
    @@ -1,470 +0,0 @@
    -/* Copyright (c) 2014, Linaro Limited
    - * All rights reserved.
    - *
    - * SPDX-License-Identifier:     BSD-3-Clause
    - */
    -
    -/*-
    - *   BSD LICENSE
    - *
    - *   Copyright(c) 2010-2013 Intel Corporation. All rights reserved.
    - *   All rights reserved.
    - *
    - *   Redistribution and use in source and binary forms, with or
    without
    - *   modification, are permitted provided that the following
    conditions
    - *   are met:
    - *
    - *     * Redistributions of source code must retain the above
    copyright
    - *       notice, this list of conditions and the following
    disclaimer.
    - *     * Redistributions in binary form must reproduce the above
    copyright
    - *       notice, this list of conditions and the following
    disclaimer in
    - *       the documentation and/or other materials provided with the
    - *       distribution.
    - *     * Neither the name of Intel Corporation nor the names of its
    - *       contributors may be used to endorse or promote products
    derived
    - *       from this software without specific prior written
    permission.
    - *
    - *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
    CONTRIBUTORS
    - *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
    BUT NOT
    - *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
    FITNESS FOR
    - *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
    COPYRIGHT
    - *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
    INCIDENTAL,
    - *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    - *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    LOSS OF USE,
    - *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    AND ON ANY
    - *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    OR TORT
    - *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
    OF THE USE
    - *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
    DAMAGE.
    - */
    -
    -
    -/**
    - * @file
    - *
    - * ODP test ring
    - */
    -
    -#include <stdlib.h>
    -#include <stdio.h>
    -#include <string.h>
    -#include <odp.h>
    -#include <odp_common.h>
    -#include <odp/helper/ring.h>
    -#include <test_debug.h>
    -
    -#define RING_SIZE 4096
    -#define MAX_BULK 32
    -
    -#define RING_TEST_BASIC
    -
    -static int test_ring_basic(odph_ring_t *r)
    -{
    -       void **src = NULL, **cur_src = NULL, **dst = NULL,
    **cur_dst = NULL;
    -       int ret;
    -       unsigned i, num_elems;
    -
    -       /* alloc dummy object pointers */
    -       src = malloc(RING_SIZE*2*sizeof(void *));
    -       if (src == NULL) {
    -               LOG_ERR("failed to allocate test ring src memory\n");
    -               goto fail;
    -       }
    -       for (i = 0; i < RING_SIZE*2; i++)
    -               src[i] = (void *)(unsigned long)i;
    -
    -       cur_src = src;
    -
    -       /* alloc some room for copied objects */
    -       dst = malloc(RING_SIZE*2*sizeof(void *));
    -       if (dst == NULL) {
    -               LOG_ERR("failed to allocate test ring dst memory\n");
    -               goto fail;
    -       }
    -
    -       memset(dst, 0, RING_SIZE*2*sizeof(void *));
    -       cur_dst = dst;
    -
    -       printf("Test SP & SC basic functions\n");
    -       printf("enqueue 1 obj\n");
    -       ret = odph_ring_sp_enqueue_burst(r, cur_src, 1);
    -       cur_src += 1;
    -       if ((ret & ODPH_RING_SZ_MASK) != 1) {
    -               LOG_ERR("sp_enq for 1 obj failed\n");
    -               goto fail;
    -       }
    -
    -       printf("enqueue 2 objs\n");
    -       ret = odph_ring_sp_enqueue_burst(r, cur_src, 2);
    -       cur_src += 2;
    -       if ((ret & ODPH_RING_SZ_MASK) != 2) {
    -               LOG_ERR("sp_enq for 2 obj failed\n");
    -               goto fail;
    -       }
    -
    -       printf("enqueue MAX_BULK objs\n");
    -       ret = odph_ring_sp_enqueue_burst(r, cur_src, MAX_BULK);
    -       if ((ret & ODPH_RING_SZ_MASK) != MAX_BULK) {
    -               LOG_ERR("sp_enq for %d obj failed\n", MAX_BULK);
    -               goto fail;
    -       }
    -
    -       printf("dequeue 1 obj\n");
    -       ret = odph_ring_sc_dequeue_burst(r, cur_dst, 1);
    -       cur_dst += 1;
    -       if ((ret & ODPH_RING_SZ_MASK) != 1) {
    -               LOG_ERR("sc_deq for 1 obj failed\n");
    -               goto fail;
    -       }
    -
    -       printf("dequeue 2 objs\n");
    -       ret = odph_ring_sc_dequeue_burst(r, cur_dst, 2);
    -       cur_dst += 2;
    -       if ((ret & ODPH_RING_SZ_MASK) != 2) {
    -               LOG_ERR("sc_deq for 2 obj failed\n");
    -               goto fail;
    -       }
    -
    -       printf("dequeue MAX_BULK objs\n");
    -       ret = odph_ring_sc_dequeue_burst(r, cur_dst, MAX_BULK);
    -       cur_dst += MAX_BULK;
    -       if ((ret & ODPH_RING_SZ_MASK) != MAX_BULK) {
    -               LOG_ERR("sc_deq for %d obj failed\n", MAX_BULK);
    -               goto fail;
    -       }
    -
    -       /* check data */
    -       if (memcmp(src, dst, cur_dst - dst)) {
    -               LOG_ERR("data after dequeue is not the same\n");
    -               goto fail;
    -       }
    -
    -       cur_src = src;
    -       cur_dst = dst;
    -
    -       printf("Test MP & MC basic functions\n");
    -
    -       printf("enqueue 1 obj\n");
    -       ret = odph_ring_mp_enqueue_bulk(r, cur_src, 1);
    -       cur_src += 1;
    -       if (ret != 0) {
    -               LOG_ERR("mp_enq for 1 obj failed\n");
    -               goto fail;
    -       }
    -       printf("enqueue 2 objs\n");
    -       ret = odph_ring_mp_enqueue_bulk(r, cur_src, 2);
    -       cur_src += 2;
    -       if (ret != 0) {
    -               LOG_ERR("mp_enq for 2 obj failed\n");
    -               goto fail;
    -       }
    -       printf("enqueue MAX_BULK objs\n");
    -       ret = odph_ring_mp_enqueue_bulk(r, cur_src, MAX_BULK);
    -       if (ret != 0) {
    -               LOG_ERR("mp_enq for %d obj failed\n", MAX_BULK);
    -               goto fail;
    -       }
    -       printf("dequeue 1 obj\n");
    -       ret = odph_ring_mc_dequeue_bulk(r, cur_dst, 1);
    -       cur_dst += 1;
    -       if (ret != 0) {
    -               LOG_ERR("mc_deq for 1 obj failed\n");
    -               goto fail;
    -       }
    -       printf("dequeue 2 objs\n");
    -       ret = odph_ring_mc_dequeue_bulk(r, cur_dst, 2);
    -       cur_dst += 2;
    -       if (ret != 0) {
    -               LOG_ERR("mc_deq for 2 obj failed\n");
    -               goto fail;
    -       }
    -       printf("dequeue MAX_BULK objs\n");
    -       ret = odph_ring_mc_dequeue_bulk(r, cur_dst, MAX_BULK);
    -       cur_dst += MAX_BULK;
    -       if (ret != 0) {
    -               LOG_ERR("mc_deq for %d obj failed\n", MAX_BULK);
    -               goto fail;
    -       }
    -       /* check data */
    -       if (memcmp(src, dst, cur_dst - dst)) {
    -               LOG_ERR("data after dequeue is not the same\n");
    -               goto fail;
    -       }
    -
    -       printf("test watermark and default bulk enqueue / dequeue\n");
    -       odph_ring_set_water_mark(r, 20);
    -       num_elems = 16;
    -
    -       cur_src = src;
    -       cur_dst = dst;
    -
    -       ret = odph_ring_mp_enqueue_bulk(r, cur_src, num_elems);
    -       cur_src += num_elems;
    -       if (ret != 0) {
    -               LOG_ERR("Cannot enqueue\n");
    -               goto fail;
    -       }
    -       ret = odph_ring_mp_enqueue_bulk(r, cur_src, num_elems);
    -       if (ret != -EDQUOT) {
    -               LOG_ERR("Watermark not exceeded\n");
    -               goto fail;
    -       }
    -       ret = odph_ring_mc_dequeue_bulk(r, cur_dst, num_elems);
    -       cur_dst += num_elems;
    -       if (ret != 0) {
    -               LOG_ERR("Cannot dequeue\n");
    -               goto fail;
    -       }
    -       ret = odph_ring_mc_dequeue_bulk(r, cur_dst, num_elems);
    -       cur_dst += num_elems;
    -       if (ret != 0) {
    -               LOG_ERR("Cannot dequeue2\n");
    -               goto fail;
    -       }
    -
    -       /* check data */
    -       if (memcmp(src, dst, cur_dst - dst)) {
    -               LOG_ERR("data after dequeue is not the same\n");
    -               goto fail;
    -       }
    -
    -       printf("basic enqueu, dequeue test for ring <%s>@%p passed\n",
    -              r->name, r);
    -
    -       free(src);
    -       free(dst);
    -       return 0;
    -
    -fail:
    -       free(src);
    -       free(dst);
    -       return -1;
    -}
    -
    -/* global shared ring used for stress testing */
    -static odph_ring_t *r_stress;
    -
    -/* Stress func for Multi producer only */
    -static int producer_fn(void)
    -{
    -       unsigned i;
    -
    -       void **src = NULL;
    -
    -       /* alloc dummy object pointers */
    -       src = malloc(MAX_BULK*2*sizeof(void *));
    -       if (src == NULL) {
    -               LOG_ERR("failed to allocate producer memory.\n");
    -               return -1;
    -       }
    -       for (i = 0; i < MAX_BULK; i++)
    -               src[i] = (void *)(unsigned long)i;
    -
    -       do {
    -               i = odph_ring_mp_enqueue_bulk(r_stress, src,
    MAX_BULK);
    -               if (i == 0) {
    -                       free(src);
    -                       return 0;
    -               }
    -       } while (1);
    -}
    -
    -/* Stress func for Multi consumer only */
    -static int consumer_fn(void)
    -{
    -       unsigned i;
    -       void **src = NULL;
    -
    -       /* alloc dummy object pointers */
    -       src = malloc(MAX_BULK*2*sizeof(void *));
    -       if (src == NULL) {
    -               LOG_ERR("failed to allocate consumer memory.\n");
    -               return -1;
    -       }
    -
    -       do {
    -               i = odph_ring_mc_dequeue_bulk(r_stress, src,
    MAX_BULK);
    -               if (i == 0) {
    -                       for (i = 0; i < MAX_BULK; i++) {
    -                               if (src[i] != (void *)(unsigned
    long)i) {
    -                                       free(src);
    -                                       printf("data mismatch..
    lockless ops fail\n");
    -                                       return -1;
    -                               }
    -                       }
    -                       free(src);
    -                       printf("\n Test OK !\n");
    -                       return 0;
    -               }
    -       } while (1);
    -}
    -
    -
    -/*
    - * Note : make sure that both enqueue and dequeue
    - * operation starts at same time so to avoid data corruption
    - * Its because atomic lock will protect only indexes, but if order of
    - * read or write operation incorrect then data mismatch will happen
    - * So its resposibility of application develop to take care of
    order of
    - * data read or write.
    -*/
    -typedef enum {
    -       one_enq_one_deq,        /* One thread to enqueue one to
    -                                  dequeu at same time */
    -       one_enq_rest_deq,       /* one thread to enq rest to
    -                                  dequeue at same time */
    -       one_deq_rest_enq,       /* one to deq and rest enq at very
    same time */
    -       multi_enq_multi_deq     /* multiple enq,deq */
    -} stress_type_t;
    -
    -static void test_ring_stress(stress_type_t type)
    -{
    -       int thr;
    -       thr = odp_thread_id();
    -
    -       switch (type) {
    -       case one_enq_one_deq:
    -
    -               if (thr == 1)
    -                       producer_fn();
    -               if (thr == 2)
    -                       consumer_fn();
    -               break;
    -
    -       case multi_enq_multi_deq:
    -               if (thr%2 == 0)
    -                       producer_fn();
    -               else
    -                       consumer_fn();
    -               break;
    -
    -       case one_deq_rest_enq:
    -       case one_enq_rest_deq:/*TBD*/
    -       default:
    -               LOG_ERR("Invalid stress type or test case yet not
    supported\n");
    -       }
    -}
    -
    -/* local struct for ring_thread argument */
    -typedef struct {
    -       pthrd_arg thrdarg;
    -       int stress_type;
    -} ring_arg_t;
    -
    -
    -static void *test_ring(void *arg)
    -{
    -       ring_arg_t *parg = (ring_arg_t *)arg;
    -       int thr;
    -       char ring_name[ODPH_RING_NAMESIZE];
    -       odph_ring_t *r;
    -       int result = 0;
    -
    -       thr = odp_thread_id();
    -
    -       printf("Thread %i starts\n", thr);
    -
    -       switch (parg->thrdarg.testcase) {
    -       case ODP_RING_TEST_BASIC:
    -               snprintf(ring_name, sizeof(ring_name),
    "test_ring_%i", thr);
    -
    -               r = odph_ring_create(ring_name, RING_SIZE,
    -                                   0 /* not used, alignement
    -                                        taken care inside func :
    todo */);
    -               if (r == NULL) {
    -                       LOG_ERR("ring create failed\n");
    -                       result = -1;
    -                       break;
    -               }
    -               /* lookup ring from its name */
    -               if (odph_ring_lookup(ring_name) != r) {
    -                       LOG_ERR("ring lookup failed\n");
    -                       result = -1;
    -                       break;
    -               }
    -
    -               /* basic operations */
    -               if (test_ring_basic(r) < 0) {
    -                       LOG_ERR("ring basic enqueue/dequeu ops
    failed\n");
    -                       result = -1;
    -               }
    -
    -               /* dump ring stats */
    -               odph_ring_list_dump();
    -
    -               break;
    -
    -       case ODP_RING_TEST_STRESS:
    -               test_ring_stress(parg->stress_type);
    -
    -               /* dump ring stats */
    -               odph_ring_list_dump();
    -               break;
    -
    -       default:
    -               LOG_ERR("Invalid test case [%d]\n",
    parg->thrdarg.testcase);
    -               result = -1;
    -               break;
    -       }
    -
    -       LOG_DBG("result = %d\n", result);
    -       if (result == 0)
    -               printf("test_ring Result:pass\n");
    -       else
    -               printf("test_ring Result:fail\n");
    -
    -       fflush(stdout);
    -
    -       return parg;
    -}
    -
    -
    -int main(int argc __attribute__((__unused__)),
    -        char *argv[] __attribute__((__unused__)))
    -{
    -       ring_arg_t rarg;
    -
    -       if (odp_test_global_init() != 0)
    -               return -1;
    -
    -       odp_print_system_info();
    -
    -       odph_ring_tailq_init();
    -
    -       rarg.thrdarg.numthrds = odp_cpu_count();
    -
    -#ifdef RING_TEST_BASIC
    -       rarg.thrdarg.testcase = ODP_RING_TEST_BASIC;
    -#else
    -       rarg.thrdarg.testcase = ODP_RING_TEST_STRESS;
    -       rarg.stress_type = one_enq_one_deq;
    -/*     rarg.stress_type = multi_enq_multi_deq;*/
    -       char ring_name[ODPH_RING_NAMESIZE];
    -
    -       printf("starting stess test type : %d..\n", rarg.stress_type);
    -       /* create a ring */
    -       snprintf(ring_name, sizeof(ring_name), "test_ring_stress");
    -
    -       r_stress = odph_ring_create(ring_name, RING_SIZE,
    -                               0 /* not used, alignement
    -                                taken care inside func : todo */);
    -       if (r_stress == NULL) {
    -               LOG_ERR("ring create failed\n");
    -               goto fail;
    -       }
    -       /* lookup ring from its name */
    -       if (odph_ring_lookup(ring_name) != r_stress) {
    -               LOG_ERR("ring lookup failed\n");
    -               goto fail;
    -       }
    -#endif
    -       odp_test_thread_create(test_ring, (pthrd_arg *)&rarg);
    -
    -#ifndef RING_TEST_BASIC
    -fail:
    -#endif
    -
    -       odp_test_thread_exit(&rarg.thrdarg);
    -
    -       return 0;
    -}
    -
    --
    2.1.4

    _______________________________________________
    lng-odp mailing list
    [email protected] <mailto:[email protected]>
    https://lists.linaro.org/mailman/listinfo/lng-odp




_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to