39368ebfc6
This patch is to support C11 memory model barrier in librte_ring. There are 2 barrier implementation options in librte_ring (suggested by Jerin). 1. use rte_smp_rmb 2. use load_acquire/store_release(refer to [1]). The reason why providing 2 options is the performance benchmark difference in different arm machines, refer to [2]. CONFIG_RTE_RING_USE_C11_MEM_MODEL is provided, and by default it is "n" on any architectures and only "y" on arm64 so far. [1] https://github.com/freebsd/freebsd/blob/master/sys/sys/buf_ring.h#L170 [2] http://dpdk.org/ml/archives/dev/2017-October/080861.html Suggested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Signed-off-by: Jia He <jia.he@hxt-semitech.com> Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Acked-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Jianbo Liu <jianbo.liu@arm.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
39 lines
1.2 KiB
Plaintext
39 lines
1.2 KiB
Plaintext
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright(c) 2017 Cavium, Inc
|
|
#
|
|
|
|
#include "common_linuxapp"
|
|
|
|
CONFIG_RTE_MACHINE="armv8a"
|
|
|
|
CONFIG_RTE_ARCH="arm64"
|
|
CONFIG_RTE_ARCH_ARM64=y
|
|
CONFIG_RTE_ARCH_64=y
|
|
|
|
CONFIG_RTE_FORCE_INTRINSICS=y
|
|
|
|
# Maximum available cache line size in arm64 implementations.
|
|
# Setting to maximum available cache line size in generic config
|
|
# to address minimum DMA alignment across all arm64 implementations.
|
|
CONFIG_RTE_CACHE_LINE_SIZE=128
|
|
|
|
# Accelarate rte_memcpy. Be sure to run unit test (memcpy_perf_autotest)
|
|
# to determine the best threshold in code. Refer to notes in source file
|
|
# (lib/librte_eal/common/include/arch/arm/rte_memcpy_64.h) for more info.
|
|
CONFIG_RTE_ARCH_ARM64_MEMCPY=n
|
|
#CONFIG_RTE_ARM64_MEMCPY_ALIGNED_THRESHOLD=2048
|
|
#CONFIG_RTE_ARM64_MEMCPY_UNALIGNED_THRESHOLD=512
|
|
# Leave below RTE_ARM64_MEMCPY_xxx options commented out, unless there're
|
|
# strong reasons.
|
|
#CONFIG_RTE_ARM64_MEMCPY_SKIP_GCC_VER_CHECK=n
|
|
#CONFIG_RTE_ARM64_MEMCPY_ALIGN_MASK=0xF
|
|
#CONFIG_RTE_ARM64_MEMCPY_STRICT_ALIGN=n
|
|
|
|
CONFIG_RTE_RING_USE_C11_MEM_MODEL=y
|
|
|
|
CONFIG_RTE_LIBRTE_FM10K_PMD=n
|
|
CONFIG_RTE_LIBRTE_SFC_EFX_PMD=n
|
|
CONFIG_RTE_LIBRTE_AVP_PMD=n
|
|
|
|
CONFIG_RTE_SCHED_VECTOR=n
|