On 04/04 21:59:15, Maxim Uvarov wrote: > 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?
It is the retry count. Perhaps it could be a bit lower, or a bit higher, but it works well. > Maxim. > > > + ev = odp_queue_deq(queue); > > + if (ev != ODP_EVENT_INVALID) > > + break; > > + odp_cpu_pause(); > > + } > > > > buf = odp_buffer_from_event(ev); > > > > >
