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

Reply via email to