> -----Original Message----- > From: dev <dev-boun...@dpdk.org> On Behalf Of Konstantin Ananyev > Sent: Saturday, April 4, 2020 01:42 > To: dev@dpdk.org > Cc: honnappa.nagaraha...@arm.com; david.march...@redhat.com; > jielong....@antfin.com; Ananyev, > Konstantin <konstantin.anan...@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.anan...@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 km...@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