On 04/04/17 21:47, Brian Brooks wrote:
> Signed-off-by: Ola Liljedahl <[email protected]>
> Reviewed-by: Brian Brooks <[email protected]>
> Reviewed-by: Honnappa Nagarahalli <[email protected]>
> Reviewed-by: Kevin Wang <[email protected]>
> ---
>  test/common_plat/performance/odp_scheduling.c | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/test/common_plat/performance/odp_scheduling.c 
> b/test/common_plat/performance/odp_scheduling.c
> index c74a0713..38e76257 100644
> --- a/test/common_plat/performance/odp_scheduling.c
> +++ b/test/common_plat/performance/odp_scheduling.c
> @@ -273,7 +273,7 @@ static int test_plain_queue(int thr, test_globals_t 
> *globals)
>       test_message_t *t_msg;
>       odp_queue_t queue;
>       uint64_t c1, c2, cycles;
> -     int i;
> +     int i, j;
>  
>       /* Alloc test message */
>       buf = odp_buffer_alloc(globals->pool);
> @@ -307,7 +307,15 @@ static int test_plain_queue(int thr, test_globals_t 
> *globals)
>                       return -1;
>               }
>  
> -             ev = odp_queue_deq(queue);
> +             /* When enqueue and dequeue are decoupled (e.g. not using a
> +              * common lock), an enqueued event may not be immediately
> +              * visible to dequeue. So we just try again for a while. */
> +             for (j = 0; j < 100; j++) {

where 100 number comes from?

Maxim.

> +                     ev = odp_queue_deq(queue);
> +                     if (ev != ODP_EVENT_INVALID)
> +                             break;
> +                     odp_cpu_pause();
> +             }
>  
>               buf = odp_buffer_from_event(ev);
>  
> 

Reply via email to