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

Reply via email to