Merged to master since API is there. (will be also in api-next).

Thanks,
Maxim.

On 07/24/15 15:19, Bill Fischofer wrote:
Given the introduction of the worker concept, this seems the correct approach.

On Fri, Jul 24, 2015 at 6:10 AM, Maxim Uvarov <[email protected] <mailto:[email protected]>> wrote:

    review needed. ping.

    Maxim.

    On 07/20/15 19:28, Maxim Uvarov wrote:

        Use number of workes instead of number of total cpus.

        Signed-off-by: Maxim Uvarov <[email protected]
        <mailto:[email protected]>>


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


        ---
          v2: rename also thread arguments from cpus to workers.

          test/validation/scheduler/scheduler.c | 23
        +++++++++++------------
          1 file changed, 11 insertions(+), 12 deletions(-)

        diff --git a/test/validation/scheduler/scheduler.c
        b/test/validation/scheduler/scheduler.c
        index f73c23a..fe03ab7 100644
        --- a/test/validation/scheduler/scheduler.c
        +++ b/test/validation/scheduler/scheduler.c
        @@ -38,7 +38,7 @@
            /* Test global variables */
          typedef struct {
        -       int cpu_count;
        +       int num_workers;
                odp_barrier_t barrier;
                int buf_count;
                odp_ticketlock_t lock;
        @@ -52,7 +52,7 @@ typedef struct {
                int num_queues;
                int num_prio;
                int num_bufs;
        -       int num_cpus;
        +       int num_workers;
                int enable_schd_multi;
                int enable_excl_atomic;
          } thread_args_t;
        @@ -164,14 +164,12 @@ static void *schedule_common_(void *arg)
          {
                thread_args_t *args = (thread_args_t *)arg;
                odp_schedule_sync_t sync;
        -       int num_cpus;
                test_globals_t *globals;
                globals = args->globals;
                sync = args->sync;
        -       num_cpus = args->num_cpus;
          -     if (num_cpus == globals->cpu_count)
        +       if (args->num_workers > 1)
        odp_barrier_wait(&globals->barrier);
                while (1) {
        @@ -317,7 +315,7 @@ static void
        schedule_common(odp_schedule_sync_t sync, int num_queues,
                args.num_queues = num_queues;
                args.num_prio = num_prio;
                args.num_bufs = TEST_NUM_BUFS;
        -       args.num_cpus = 1;
        +       args.num_workers = 1;
                args.enable_schd_multi = enable_schd_multi;
                args.enable_excl_atomic = 0;    /* Not needed with a
        single CPU */
          @@ -352,14 +350,14 @@ static void
        parallel_execute(odp_schedule_sync_t sync, int num_queues,
                        args->num_bufs = NUM_BUFS_EXCL;
                else
                        args->num_bufs = TEST_NUM_BUFS;
        -       args->num_cpus = globals->cpu_count;
        +       args->num_workers = globals->num_workers;
                args->enable_schd_multi = enable_schd_multi;
                args->enable_excl_atomic = enable_excl_atomic;
                fill_queues(args);
                /* Create and launch worker threads */
        -       args->cu_thr.numthrds = globals->cpu_count;
        +       args->cu_thr.numthrds = globals->num_workers;
                odp_cunit_thread_create(schedule_common_, &args->cu_thr);
                /* Wait for worker threads to terminate */
        @@ -662,6 +660,7 @@ static int create_queues(void)
            static int scheduler_suite_init(void)
          {
        +       odp_cpumask_t mask;
                odp_shm_t shm;
                odp_pool_t pool;
                test_globals_t *globals;
        @@ -692,9 +691,9 @@ static int scheduler_suite_init(void)
                memset(globals, 0, sizeof(test_globals_t));
          -     globals->cpu_count = odp_cpu_count();
        -       if (globals->cpu_count > MAX_WORKERS)
        -               globals->cpu_count = MAX_WORKERS;
        +       globals->num_workers = odp_cpumask_def_worker(&mask, 0);
        +       if (globals->num_workers > MAX_WORKERS)
        +               globals->num_workers = MAX_WORKERS;
                shm = odp_shm_reserve(SHM_THR_ARGS_NAME,
        sizeof(thread_args_t),
                                      ODP_CACHE_LINE_SIZE, 0);
        @@ -708,7 +707,7 @@ static int scheduler_suite_init(void)
                memset(args, 0, sizeof(thread_args_t));
                /* Barrier to sync test case execution */
        -       odp_barrier_init(&globals->barrier, globals->cpu_count);
        +       odp_barrier_init(&globals->barrier, globals->num_workers);
        odp_ticketlock_init(&globals->lock);
        odp_spinlock_init(&globals->atomic_lock);


    _______________________________________________
    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

Reply via email to