[dpdk-dev] [PATCH v2] ring: check for zero objects mc dequeue / mp enqueue

Thomas Monjalon thomas.monjalon at 6wind.com
Tue Mar 22 17:49:08 CET 2016


> > Issuing a zero objects dequeue with a single consumer has no effect.
> > Doing so with multiple consumers, can get more than one thread to succeed
> > the compare-and-set operation and observe starvation or even deadlock in
> > the while loop that checks for preceding dequeues.  The problematic piece
> > of code when n = 0:
> > 
> >     cons_next = cons_head + n;
> >     success = rte_atomic32_cmpset(&r->cons.head, cons_head, cons_next);
> > 
> > The same is possible on the enqueue path.
> > 
> > Signed-off-by: Lazaros Koromilas <l at nofutznetworks.com>
> 
> Acked-by: Olivier Matz <olivier.matz at 6wind.com>

Applied, thanks


More information about the dev mailing list