https://bugs.linaro.org/show_bug.cgi?id=2505
Bug ID: 2505
Summary: ipc ring corruption on pktio close
Product: OpenDataPlane - linux- generic reference
Version: v1.11.0.0
Hardware: Other
OS: Linux
Status: UNCONFIRMED
Severity: enhancement
Priority: ---
Component: Packet IO
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Target Milestone: ---
when applying serries [PATCH v2 0/6] scheduler rings
see that ipc ring is corrupted during application exit. That might be not
related to patch set or might be related.
(gdb) p r->prod
Cannot access memory at address 0x2b94796ac040
(gdb) l
376 uint32_t cons_head, prod_tail;
377 uint32_t cons_next, entries;
378 const unsigned max = n;
379 int success;
380 unsigned i;
381 uint32_t mask = r->prod.mask;
382
383 /* move cons.head atomically */
384 do {
385 /* Restore n as it may change every loop */
(gdb) bt
#0 ___ring_mc_do_dequeue (r=r@entry=0x2b94796ac000,
obj_table=obj_table@entry=0x7ffca334af50, n=n@entry=4096,
behavior=behavior@entry=_RING_QUEUE_VARIABLE) at pktio/ring.c:381
#1 0x0000000000410c4a in _ring_mc_dequeue_burst (r=r@entry=0x2b94796ac000,
obj_table=obj_table@entry=0x7ffca334af50, n=n@entry=4096) at pktio/ring.c:638
#2 0x000000000040a6c0 in _ipc_free_ring_packets (r=0x2b94796ac000) at
pktio/ipc.c:480
#3 0x000000000040a967 in ipc_stop
(pktio_entry=pktio_entry@entry=0x2b947b069b00) at pktio/ipc.c:734
#4 0x000000000040aaae in ipc_close (pktio_entry=0x2b947b069b00) at
pktio/ipc.c:756
#5 0x00000000004079d1 in _pktio_close (entry=entry@entry=0x2b947b069b00) at
odp_packet_io.c:286
#6 0x0000000000409bb5 in odp_pktio_close (hdl=hdl@entry=0x1) at
odp_packet_io.c:376
#7 0x0000000000402d98 in ipc_second_process () at pktio_ipc2.c:163
#8 main (argc=<optimized out>, argv=<optimized out>) at pktio_ipc2.c:199
(gdb) l
386 n = max;
387
388 cons_head = r->cons.head;
389 prod_tail = r->prod.tail;
390 /* The subtraction is done between two unsigned 32bits
value
391 * (the result is always modulo 32 bits even if we have
392 * cons_head > prod_tail). So 'entries' is always
between 0
393 * and size(ring)-1. */
394 entries = (prod_tail - cons_head);
395
(gdb) p r->cons
Cannot access memory at address 0x2b94796ac080
--
You are receiving this mail because:
You are on the CC list for the bug.