Fix typo in Maxim's e-mail address.

On Fri, Mar 20, 2015 at 1:22 PM, Bill Fischofer <[email protected]>
wrote:

>
>
> On Fri, Mar 20, 2015 at 1:19 PM, Mike Holmes <[email protected]>
> wrote:
>
>> The api_test directory is being deleted, any test with value needs to
>> migrate
>> Moved this test to performance because it can be used to gauge the
>> ability of the atomics to scale with core count.
>> The move required that odp_atomic run all tests by default
>>
>> Signed-off-by: Mike Holmes <[email protected]>
>>
>
> Reviewed-by: Bill Fischofer <[email protected]>
>
>
>> ---
>>  test/api_test/.gitignore                           |   1 -
>>  test/api_test/Makefile.am                          |   6 +-
>>  test/api_test/odp_atomic_test.h                    |  51 --------
>>  test/api_test/odp_common.c                         |   2 +-
>>  test/performance/.gitignore                        |   1 +
>>  test/performance/Makefile.am                       |   5 +-
>>  .../odp_atomic_test.c => performance/odp_atomic.c} | 136
>> ++++++++++++++++++++-
>>  7 files changed, 138 insertions(+), 64 deletions(-)
>>  delete mode 100644 test/api_test/odp_atomic_test.h
>>  rename test/{api_test/odp_atomic_test.c => performance/odp_atomic.c}
>> (63%)
>>
>> diff --git a/test/api_test/.gitignore b/test/api_test/.gitignore
>> index 84159e1..950f443 100644
>> --- a/test/api_test/.gitignore
>> +++ b/test/api_test/.gitignore
>> @@ -1,3 +1,2 @@
>> -odp_atomic
>>  odp_ring
>>  odp_shm
>> diff --git a/test/api_test/Makefile.am b/test/api_test/Makefile.am
>> index 86e1bc2..f231fee 100644
>> --- a/test/api_test/Makefile.am
>> +++ b/test/api_test/Makefile.am
>> @@ -1,21 +1,17 @@
>>  include $(top_srcdir)/test/Makefile.inc
>>
>> -bin_PROGRAMS = odp_atomic odp_shm odp_ring
>> +bin_PROGRAMS = odp_shm odp_ring
>>
>> -odp_atomic_CFLAGS = $(AM_CFLAGS)
>>  odp_shm_CFLAGS = $(AM_CFLAGS)
>>  odp_ring_CFLAGS = $(AM_CFLAGS)
>>
>> -odp_atomic_LDFLAGS = $(AM_LDFLAGS) -static
>>  odp_shm_LDFLAGS = $(AM_LDFLAGS) -static
>>  odp_ring_LDFLAGS = $(AM_LDFLAGS) -static
>>
>>  noinst_HEADERS = \
>> -                 $(top_srcdir)/test/api_test/odp_atomic_test.h \
>>                   $(top_srcdir)/test/api_test/odp_common.h \
>>                   $(top_srcdir)/test/api_test/odp_shm_test.h \
>>                   $(top_srcdir)/test/test_debug.h
>>
>> -dist_odp_atomic_SOURCES = odp_atomic_test.c odp_common.c
>>  dist_odp_shm_SOURCES = odp_shm_test.c odp_common.c
>>  dist_odp_ring_SOURCES = odp_ring_test.c odp_common.c
>> diff --git a/test/api_test/odp_atomic_test.h
>> b/test/api_test/odp_atomic_test.h
>> deleted file mode 100644
>> index 89e7748..0000000
>> --- a/test/api_test/odp_atomic_test.h
>> +++ /dev/null
>> @@ -1,51 +0,0 @@
>> -/* Copyright (c) 2013, Linaro Limited
>> - * All rights reserved.
>> - *
>> - * SPDX-License-Identifier:     BSD-3-Clause
>> - */
>> -
>> -#ifndef ODP_ATOMIC_TEST_H_
>> -#define ODP_ATOMIC_TEST_H_
>> -
>> -#include <odp.h>
>> -#include <odp/helper/linux.h>
>> -
>> -/**
>> - * add_sub_cnt could be any valid value
>> - * so to excercise explicit atomic_add/sub
>> - * ops. For now using 5..
>> - */
>> -#define ADD_SUB_CNT    5
>> -
>> -#define        CNT 500000
>> -#define        U32_INIT_VAL    (1UL << 10)
>> -#define        U64_INIT_VAL    (1ULL << 33)
>> -
>> -typedef enum {
>> -       TEST_MIX = 1, /* Must be first test case num */
>> -       TEST_INC_DEC_U32,
>> -       TEST_ADD_SUB_U32,
>> -       TEST_INC_DEC_64,
>> -       TEST_ADD_SUB_64,
>> -       TEST_MAX,
>> -} odp_test_atomic_t;
>> -
>> -
>> -void test_atomic_inc_dec_u32(void);
>> -void test_atomic_add_sub_u32(void);
>> -void test_atomic_inc_dec_64(void);
>> -void test_atomic_add_sub_64(void);
>> -void test_atomic_inc_u32(void);
>> -void test_atomic_dec_u32(void);
>> -void test_atomic_add_u32(void);
>> -void test_atomic_sub_u32(void);
>> -void test_atomic_inc_64(void);
>> -void test_atomic_dec_64(void);
>> -void test_atomic_add_64(void);
>> -void test_atomic_sub_64(void);
>> -void test_atomic_init(void);
>> -void test_atomic_basic(void);
>> -void test_atomic_store(void);
>> -int test_atomic_validate(void);
>> -
>> -#endif /* ODP_ATOMIC_TEST_H_ */
>> diff --git a/test/api_test/odp_common.c b/test/api_test/odp_common.c
>> index 5158d87..18b365e 100644
>> --- a/test/api_test/odp_common.c
>> +++ b/test/api_test/odp_common.c
>> @@ -14,10 +14,10 @@
>>  #include <odp.h>
>>  #include <odp/helper/linux.h>
>>  #include <odp_common.h>
>> -#include <odp_atomic_test.h>
>>  #include <odp_shm_test.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*/
>> diff --git a/test/performance/.gitignore b/test/performance/.gitignore
>> index 9ccb102..1bdb90d 100644
>> --- a/test/performance/.gitignore
>> +++ b/test/performance/.gitignore
>> @@ -1,3 +1,4 @@
>>  *.log
>>  *.trs
>>  odp_scheduling
>> +odp_atomic
>> diff --git a/test/performance/Makefile.am b/test/performance/Makefile.am
>> index 54cf529..b0f7457 100644
>> --- a/test/performance/Makefile.am
>> +++ b/test/performance/Makefile.am
>> @@ -2,7 +2,7 @@ include $(top_srcdir)/test/Makefile.inc
>>
>>  TESTS_ENVIRONMENT = TEST_DIR=${builddir}
>>
>> -EXECUTABLES =
>> +EXECUTABLES = odp_atomic
>>
>>  COMPILE_ONLY = odp_scheduling
>>
>> @@ -14,10 +14,13 @@ endif
>>
>>  bin_PROGRAMS = $(EXECUTABLES) $(COMPILE_ONLY)
>>
>> +odp_atomic_LDFLAGS = $(AM_LDFLAGS) -static
>> +odp_atomic_CFLAGS = $(AM_CFLAGS) -I${top_srcdir}/test
>>  odp_scheduling_LDFLAGS = $(AM_LDFLAGS) -static
>>  odp_scheduling_CFLAGS = $(AM_CFLAGS) -I${top_srcdir}/test
>>
>>  noinst_HEADERS = \
>>                   $(top_srcdir)/test/test_debug.h
>>
>> +dist_odp_atomic_SOURCES = odp_atomic.c
>>  dist_odp_scheduling_SOURCES = odp_scheduling.c
>> diff --git a/test/api_test/odp_atomic_test.c
>> b/test/performance/odp_atomic.c
>> similarity index 63%
>> rename from test/api_test/odp_atomic_test.c
>> rename to test/performance/odp_atomic.c
>> index 6ccdc35..241295c 100644
>> --- a/test/api_test/odp_atomic_test.c
>> +++ b/test/performance/odp_atomic.c
>> @@ -6,14 +6,68 @@
>>
>>  #include <string.h>
>>  #include <sys/time.h>
>> -#include <odp_common.h>
>> -#include <odp_atomic_test.h>
>>  #include <test_debug.h>
>>
>> +#include <odp.h>
>> +#include <odp/helper/linux.h>
>> +
>> +static void test_atomic_inc_dec_u32(void);
>> +static void test_atomic_add_sub_u32(void);
>> +static void test_atomic_inc_dec_64(void);
>> +static void test_atomic_add_sub_64(void);
>> +static void test_atomic_inc_u32(void);
>> +static void test_atomic_dec_u32(void);
>> +static void test_atomic_add_u32(void);
>> +static void test_atomic_sub_u32(void);
>> +static void test_atomic_inc_64(void);
>> +static void test_atomic_dec_64(void);
>> +static void test_atomic_add_64(void);
>> +static void test_atomic_sub_64(void);
>> +static void test_atomic_init(void);
>> +static void test_atomic_basic(void);
>> +static void test_atomic_store(void);
>> +static int test_atomic_validate(void);
>> +static int odp_test_global_init(void);
>> +static void odp_print_system_info(void);
>> +
>> +/**
>> + * Thread argument
>> + */
>> +typedef struct {
>> +       int testcase; /**< specifies which set of API's to exercise */
>> +       int numthrds; /**< no of pthreads to create */
>> +} pthrd_arg;
>> +
>> +static int odp_test_thread_create(void *(*start_routine) (void *),
>> pthrd_arg *);
>> +static int odp_test_thread_exit(pthrd_arg *);
>> +
>> +#define MAX_WORKERS           32            /**< Max worker threads */
>> +/**
>> + * add_sub_cnt could be any valid value
>> + * so to excercise explicit atomic_add/sub
>> + * ops. For now using 5..
>> + */
>> +#define ADD_SUB_CNT    5
>> +#define        CNT 500000
>> +#define        U32_INIT_VAL    (1UL << 10)
>> +#define        U64_INIT_VAL    (1ULL << 33)
>> +
>> +typedef enum {
>> +       TEST_MIX = 1, /* Must be first test case num */
>> +       TEST_INC_DEC_U32,
>> +       TEST_ADD_SUB_U32,
>> +       TEST_INC_DEC_64,
>> +       TEST_ADD_SUB_64,
>> +       TEST_MAX,
>> +} odp_test_atomic_t;
>> +
>>  static odp_atomic_u32_t a32u;
>>  static odp_atomic_u64_t a64u;
>> -
>>  static odp_barrier_t barrier;
>> +static odph_linux_pthread_t thread_tbl[MAX_WORKERS]; /**< worker threads
>> table*/
>> +static int num_workers; /**< number of workers >----*/
>> +
>> +
>>
>>  static const char * const test_name[] = {
>>         "dummy",
>> @@ -224,17 +278,87 @@ static void *run_thread(void *arg)
>>         return parg;
>>  }
>>
>> +/** create test thread */
>> +int odp_test_thread_create(void *func_ptr(void *), pthrd_arg *arg)
>> +{
>> +       odp_cpumask_t cpumask;
>> +
>> +       /* Create and init additional threads */
>> +       odph_linux_cpumask_default(&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;
>> +}
>> +
>> +/** 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;
>> +}
>> +
>> +/**
>> + * 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");
>> +}
>> +
>> +
>>  int main(int argc, char *argv[])
>>  {
>>         pthrd_arg thrdarg;
>> -       int test_type = 0, pthrdnum = 0, i = 0, cnt = argc - 1;
>> +       int test_type = 1, pthrdnum = 0, i = 0, cnt = argc - 1;
>>         char c;
>>         int result;
>>
>> -       if (argc == 1 || argc % 2 == 0) {
>> +       if (argc == 0 || argc % 2 == 0) {
>>                 usage();
>>                 goto err_exit;
>>         }
>> +
>>         if (odp_test_global_init() != 0)
>>                 goto err_exit;
>>         odp_print_system_info();
>> @@ -297,3 +421,5 @@ int main(int argc, char *argv[])
>>  err_exit:
>>         return -1;
>>  }
>> +
>> +
>> --
>> 2.1.0
>>
>>
>> _______________________________________________
>> lng-odp mailing list
>> [email protected]
>> http://lists.linaro.org/mailman/listinfo/lng-odp
>>
>
>
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to