Ok, v2 submitted with requested changes.  Thanks.

Bill

On Wed, Jan 20, 2016 at 2:24 PM, Ivan Khoronzhuk <ivan.khoronz...@linaro.org
> wrote:

>
>
> On 20.01.16 21:43, Ivan Khoronzhuk wrote:
>
>>
>>
>> On 20.01.16 18:58, Bill Fischofer wrote:
>>
>>> ping.
>>>
>>> On Wed, Dec 30, 2015 at 5:49 PM, Bill Fischofer <
>>> bill.fischo...@linaro.org <mailto:bill.fischo...@linaro.org>> wrote:
>>>
>>>     Expand the existing scheduler chaos test to provide timing
>>> information for
>>>     mixed queues as well as individual timings for parallel, atomic, and
>>>     ordered queues. This enables implementation scheduling efficiency to
>>> be
>>>     displayed by queue type.
>>>
>>>     Signed-off-by: Bill Fischofer <bill.fischo...@linaro.org <mailto:
>>> bill.fischo...@linaro.org>>
>>>
>>
>> Please, decrease CHAOS_NUM_ROUNDS, say 1000. That's more then enough.
>> Especially now, when it's multiplied on 4 with number of tests.
>> Also, see below.
>>
>>     ---
>>>       test/validation/scheduler/scheduler.c | 51
>>> ++++++++++++++++++++++++++++++-----
>>>       test/validation/scheduler/scheduler.h |  3 +++
>>>       2 files changed, 48 insertions(+), 6 deletions(-)
>>>
>>>     diff --git a/test/validation/scheduler/scheduler.c
>>> b/test/validation/scheduler/scheduler.c
>>>     index 7ba6a06..d5842de 100644
>>>     --- a/test/validation/scheduler/scheduler.c
>>>     +++ b/test/validation/scheduler/scheduler.c
>>>     @@ -451,12 +451,14 @@ static void *chaos_thread(void *arg)
>>>              thread_args_t *args = (thread_args_t *)arg;
>>>              test_globals_t *globals = args->globals;
>>>              int me = odp_thread_id();
>>>     +       odp_time_t start_time, end_time, diff;
>>>
>>>              if (CHAOS_DEBUG)
>>>                      printf("Chaos thread %d starting...\n", me);
>>>
>>>              /* Wait for all threads to start */
>>>              odp_barrier_wait(&globals->barrier);
>>>     +       start_time = odp_time_local();
>>>
>>>              /* Run the test */
>>>              wait = odp_schedule_wait_time(CHAOS_WAIT_FAIL);
>>>     @@ -508,10 +510,16 @@ static void *chaos_thread(void *arg)
>>>                      odp_event_free(ev);
>>>              }
>>>
>>>     +       end_time = odp_time_local();
>>>     +       diff = odp_time_diff(end_time, start_time);
>>>     +
>>>     +       printf("Thread %d ends, elapsed time = %" PRIu64 "us\n",
>>>     +              odp_thread_id(), odp_time_to_ns(diff) / 1000);
>>>     +
>>>              return NULL;
>>>       }
>>>
>>>     -void scheduler_test_chaos(void)
>>>     +static void chaos_run(unsigned int qtype)
>>>       {
>>>              odp_pool_t pool;
>>>              odp_pool_param_t params;
>>>     @@ -557,11 +565,19 @@ void scheduler_test_chaos(void)
>>>              qp.sched.prio = ODP_SCHED_PRIO_DEFAULT;
>>>
>>>              for (i = 0; i < CHAOS_NUM_QUEUES; i++) {
>>>     -               qp.sched.sync = sync[i % num_sync];
>>>     -               snprintf(globals->chaos_q[i].name,
>>>     -                        sizeof(globals->chaos_q[i].name),
>>>     -                        "chaos queue %d - %s", i,
>>>     -                        qtypes[i % num_sync]);
>>>     +               if (qtype == num_sync) {
>>>     +                       qp.sched.sync = sync[i % num_sync];
>>>     +                       snprintf(globals->chaos_q[i].name,
>>>     +                                sizeof(globals->chaos_q[i].name),
>>>     +                                "chaos queue %d - %s", i,
>>>     +                                qtypes[i % num_sync]);
>>>     +               } else {
>>>     +                       qp.sched.sync = sync[qtype];
>>>     +                       snprintf(globals->chaos_q[i].name,
>>>     +                                sizeof(globals->chaos_q[i].name),
>>>     +                                "chaos queue %d - %s", i,
>>>     +                                qtypes[qtype]);
>>>     +               }
>>>
>>
>>                unsigned int qtype_num;
>>
>>                qtype_num = qtype == num_sync ? i % num_sync : qtype;
>>                qp.sched.sync = sync[qtype_num];
>>                snprintf(globals->chaos_q[i].name,
>>                     sizeof(globals->chaos_q[i].name),
>>                     "chaos queue %d - %s", i,
>>                     qtypes[qtype_num]);
>>
>>
>>                      globals->chaos_q[i].handle =
>>>                              odp_queue_create(globals->chaos_q[i].name,
>>>                                               ODP_QUEUE_TYPE_SCHED,
>>>     @@ -630,6 +646,26 @@ void scheduler_test_chaos(void)
>>>              CU_ASSERT(rc == 0);
>>>       }
>>>
>>>     +void scheduler_test_chaos(void)
>>>     +{
>>>     +       chaos_run(3);
>>>     +}
>>>     +
>>>     +void scheduler_test_parallel(void)
>>>     +{
>>>     +       chaos_run(0);
>>>     +}
>>>     +
>>>     +void scheduler_test_atomic(void)
>>>     +{
>>>     +       chaos_run(1);
>>>     +}
>>>     +
>>>     +void scheduler_test_ordered(void)
>>>     +{
>>>     +       chaos_run(2);
>>>     +}
>>>     +
>>>       static void *schedule_common_(void *arg)
>>>       {
>>>              thread_args_t *args = (thread_args_t *)arg;
>>>     @@ -1521,6 +1557,9 @@ odp_testinfo_t scheduler_suite[] = {
>>>              ODP_TEST_INFO(scheduler_test_queue_destroy),
>>>              ODP_TEST_INFO(scheduler_test_groups),
>>>              ODP_TEST_INFO(scheduler_test_chaos),
>>>
>> better to be after *_test_ordered test.
>
>     +       ODP_TEST_INFO(scheduler_test_parallel),
>>>     +       ODP_TEST_INFO(scheduler_test_atomic),
>>>     +       ODP_TEST_INFO(scheduler_test_ordered),
>>>
>> here.
>
>              ODP_TEST_INFO(scheduler_test_1q_1t_n),
>>>              ODP_TEST_INFO(scheduler_test_1q_1t_a),
>>>              ODP_TEST_INFO(scheduler_test_1q_1t_o),
>>>     diff --git a/test/validation/scheduler/scheduler.h
>>> b/test/validation/scheduler/scheduler.h
>>>     index bba79aa..cd69e92 100644
>>>     --- a/test/validation/scheduler/scheduler.h
>>>     +++ b/test/validation/scheduler/scheduler.h
>>>     @@ -15,6 +15,9 @@ void scheduler_test_num_prio(void);
>>>       void scheduler_test_queue_destroy(void);
>>>       void scheduler_test_groups(void);
>>>       void scheduler_test_chaos(void);
>>>     +void scheduler_test_parallel(void);
>>>     +void scheduler_test_atomic(void);
>>>     +void scheduler_test_ordered(void);
>>>       void scheduler_test_1q_1t_n(void);
>>>       void scheduler_test_1q_1t_a(void);
>>>       void scheduler_test_1q_1t_o(void);
>>>     --
>>>     2.5.0
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> lng-odp mailing list
>>> lng-odp@lists.linaro.org
>>> https://lists.linaro.org/mailman/listinfo/lng-odp
>>>
>>>
>>
> --
> Regards,
> Ivan Khoronzhuk
>
_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to