Hi, On 02/12/2015 09:16 AM, Cunming Liang wrote: > Add a sched_yield() syscall if the thread spins for too long, waiting other > thread to finish its operations on the ring. > That gives pre-empted thread a chance to proceed and finish with ring > enqnue/dequeue operation. > The purpose is to reduce contention on the ring. By ring_perf_test, it > doesn't shows additional perf penalty. > > Signed-off-by: Cunming Liang <cunming.liang at intel.com> > --- > v5 changes: > add RTE_RING_PAUSE_REP to config file > > v4 changes: > update and add more comments on sched_yield() > > v3 changes: > new patch adding sched_yield() in rte_ring to avoid long spin > > config/common_bsdapp | 1 + > config/common_linuxapp | 1 + > lib/librte_ring/rte_ring.h | 31 +++++++++++++++++++++++++++---- > 3 files changed, 29 insertions(+), 4 deletions(-) > > diff --git a/config/common_bsdapp b/config/common_bsdapp > index 57bacb8..52c5143 100644 > --- a/config/common_bsdapp > +++ b/config/common_bsdapp > @@ -234,6 +234,7 @@ CONFIG_RTE_PMD_PACKET_PREFETCH=y > CONFIG_RTE_LIBRTE_RING=y > CONFIG_RTE_LIBRTE_RING_DEBUG=n > CONFIG_RTE_RING_SPLIT_PROD_CONS=n > +CONFIG_RTE_RING_PAUSE_REP=n
Maybe it's better to use CONFIG_RTE_RING_PAUSE_REP=0 instead? If I understand well, it has to be set to an integer value to enable it, am I correct? Thanks, Olivier