e6ba4731c0
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. Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
27 lines
593 B
Makefile
27 lines
593 B
Makefile
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright(c) 2010-2014 Intel Corporation
|
|
|
|
include $(RTE_SDK)/mk/rte.vars.mk
|
|
|
|
# library name
|
|
LIB = librte_ring.a
|
|
|
|
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
|
|
LDLIBS += -lrte_eal
|
|
|
|
EXPORT_MAP := rte_ring_version.map
|
|
|
|
# all source are stored in SRCS-y
|
|
SRCS-$(CONFIG_RTE_LIBRTE_RING) := rte_ring.c
|
|
|
|
# install includes
|
|
SYMLINK-$(CONFIG_RTE_LIBRTE_RING)-include := rte_ring.h \
|
|
rte_ring_core.h \
|
|
rte_ring_elem.h \
|
|
rte_ring_generic.h \
|
|
rte_ring_c11_mem.h \
|
|
rte_ring_rts.h \
|
|
rte_ring_rts_c11_mem.h
|
|
|
|
include $(RTE_SDK)/mk/rte.lib.mk
|