[dpdk-dev] [PATCH v3 3/9] ring: introduce RTS ring mode
Wang, Haiyue
haiyue.wang at intel.com
Sat Apr 4 19:27:51 CEST 2020
> -----Original Message-----
> From: dev <dev-bounces at dpdk.org> On Behalf Of Konstantin Ananyev
> Sent: Saturday, April 4, 2020 01:42
> To: dev at dpdk.org
> Cc: honnappa.nagarahalli at arm.com; david.marchand at redhat.com; jielong.zjl at antfin.com; Ananyev,
> Konstantin <konstantin.ananyev at intel.com>
> Subject: [dpdk-dev] [PATCH v3 3/9] ring: introduce RTS ring mode
>
> Introduce relaxed tail sync (RTS) mode for MT ring synchronization.
> Aim to reduce stall times in case when ring is used on
> overcommited cpus (multiple active threads on the same cpu).
> The main difference from original MP/MC algorithm is that
> tail value is increased not by every thread that finished enqueue/dequeue,
> but only by the last one.
> That allows threads to avoid spinning on ring tail value,
> leaving actual tail value change to the last thread in the update queue.
>
> check-abi.sh reports what I believe is a false-positive about
> ring cons/prod changes. As a workaround, devtools/libabigail.abignore is
> updated to suppress *struct ring* related errors.
>
> Signed-off-by: Konstantin Ananyev <konstantin.ananyev at intel.com>
> ---
> devtools/libabigail.abignore | 7 +
> lib/librte_ring/Makefile | 5 +-
> lib/librte_ring/meson.build | 5 +-
> lib/librte_ring/rte_ring.c | 100 +++++++-
> lib/librte_ring/rte_ring.h | 110 ++++++++-
> lib/librte_ring/rte_ring_elem.h | 86 ++++++-
> lib/librte_ring/rte_ring_rts.h | 316 +++++++++++++++++++++++++
> lib/librte_ring/rte_ring_rts_elem.h | 205 ++++++++++++++++
> lib/librte_ring/rte_ring_rts_generic.h | 210 ++++++++++++++++
> 9 files changed, 1015 insertions(+), 29 deletions(-)
> create mode 100644 lib/librte_ring/rte_ring_rts.h
> create mode 100644 lib/librte_ring/rte_ring_rts_elem.h
> create mode 100644 lib/librte_ring/rte_ring_rts_generic.h
>
> #ifdef __cplusplus
> diff --git a/lib/librte_ring/rte_ring_rts.h b/lib/librte_ring/rte_ring_rts.h
> new file mode 100644
> index 000000000..18404fe48
> --- /dev/null
> +++ b/lib/librte_ring/rte_ring_rts.h
> @@ -0,0 +1,316 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + *
> + * Copyright (c) 2010-2017 Intel Corporation
> + * Copyright (c) 2007-2009 Kip Macy kmacy at freebsd.org
> + * All rights reserved.
> + * Derived from FreeBSD's bufring.h
Find that it is buf_ring.h in real ;-)
> + * Used as BSD-3 Licensed with permission from Kip Macy.
> + */
> --
> 2.17.1
More information about the dev
mailing list