https://bugs.linaro.org/show_bug.cgi?id=1879
Carl Wallen <[email protected]> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |[email protected]
--- Comment #1 from Carl Wallen <[email protected]> ---
I see ordered queue deadlock even when using one core.
Same behaviour on both master and api-next using latest commits.
In my test I have 3 queues: one atomic, one parallel and one ordered - the
application is enqueuing from each of these queues using odp_schedule() and
then the received events are sent to each of these 3 queues in turn. It also
means that events can be sent back into the queue it originated from.
My test gets stuck in the following while loop:
odp_queue.c
int queue_enq(...)
{
...
if (origin_qe) {
LOCK(&origin_qe->s.lock);
->stuck in loop:while (!LOCK_TRY(&queue->s.lock)) {
UNLOCK(&origin_qe->s.lock);
LOCK(&origin_qe->s.lock);
}
gdb backtrace:
[Switching to thread 2 (Thread 0x7ffff6371700 (LWP 6472))]
#0 _odp_atomic_u32_store_mm (atom=0x7ffff7f6dac4, val=253301139,
mmodel=_ODP_MEMMODEL_RLS) at
../../../platform/linux-generic/include/odp_atomic_internal.h:111
111 }
(gdb) bt
#0 _odp_atomic_u32_store_mm (atom=0x7ffff7f6dac4, val=253301139,
mmodel=_ODP_MEMMODEL_RLS) at
../../../platform/linux-generic/include/odp_atomic_internal.h:111
#1 0x00007ffff7bc3331 in odp_ticketlock_unlock (ticketlock=0x7ffff7f6dac0) at
../../../platform/linux-generic/odp_ticketlock.c:77
#2 0x00007ffff7bbd62f in queue_enq (queue=0x7ffff7f6dac0,
buf_hdr=0x7ffff6572600, sustain=1) at
../../../platform/linux-generic/odp_queue.c:375
--
You are receiving this mail because:
You are on the CC list for the bug._______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp