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]> 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]> > > Reviewed-by: Bill Fischofer <[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] > https://lists.linaro.org/mailman/listinfo/lng-odp >
_______________________________________________ lng-odp mailing list [email protected] https://lists.linaro.org/mailman/listinfo/lng-odp
