net/i40e: eliminate weak symbols in data path
Use of weak symbols can hide makefile errors especially when custom makefiles are used. Removing the use of weak symbols to avoid a stub function being linked in production code. Signed-off-by: David Harton <dharton@cisco.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
This commit is contained in:
parent
bf2644cd38
commit
02ad704708
@ -89,6 +89,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += rte_pmd_i40e.c
|
||||
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_tm.c
|
||||
SRCS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += i40e_vf_representor.c
|
||||
|
||||
ifeq ($(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR),y)
|
||||
ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2,$(CFLAGS)),RTE_MACHINE_CPUFLAG_AVX2)
|
||||
CC_AVX2_SUPPORT=1
|
||||
else
|
||||
@ -103,9 +104,11 @@ else
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(CC_AVX2_SUPPORT), 1)
|
||||
SRCS-$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR) += i40e_rxtx_vec_avx2.c
|
||||
CFLAGS_i40e_rxtx.o += -DCC_AVX2_SUPPORT
|
||||
endif
|
||||
|
||||
# install this header file
|
||||
|
@ -2934,7 +2934,7 @@ i40e_txq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
|
||||
static eth_rx_burst_t
|
||||
i40e_get_latest_rx_vec(bool scatter)
|
||||
{
|
||||
#ifdef RTE_ARCH_X86
|
||||
#if defined(RTE_ARCH_X86) && defined(CC_AVX2_SUPPORT)
|
||||
if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX2))
|
||||
return scatter ? i40e_recv_scattered_pkts_vec_avx2 :
|
||||
i40e_recv_pkts_vec_avx2;
|
||||
@ -2946,7 +2946,7 @@ i40e_get_latest_rx_vec(bool scatter)
|
||||
static eth_rx_burst_t
|
||||
i40e_get_recommend_rx_vec(bool scatter)
|
||||
{
|
||||
#ifdef RTE_ARCH_X86
|
||||
#if defined(RTE_ARCH_X86) && defined(CC_AVX2_SUPPORT)
|
||||
/*
|
||||
* since AVX frequency can be different to base frequency, limit
|
||||
* use of AVX2 version to later plaforms, not all those that could
|
||||
@ -3063,7 +3063,7 @@ i40e_set_tx_function_flag(struct rte_eth_dev *dev, struct i40e_tx_queue *txq)
|
||||
static eth_tx_burst_t
|
||||
i40e_get_latest_tx_vec(void)
|
||||
{
|
||||
#ifdef RTE_ARCH_X86
|
||||
#if defined(RTE_ARCH_X86) && defined(CC_AVX2_SUPPORT)
|
||||
if (rte_cpu_get_flag_enabled(RTE_CPUFLAG_AVX2))
|
||||
return i40e_xmit_pkts_vec_avx2;
|
||||
#endif
|
||||
@ -3073,7 +3073,7 @@ i40e_get_latest_tx_vec(void)
|
||||
static eth_tx_burst_t
|
||||
i40e_get_recommend_tx_vec(void)
|
||||
{
|
||||
#ifdef RTE_ARCH_X86
|
||||
#if defined(RTE_ARCH_X86) && defined(CC_AVX2_SUPPORT)
|
||||
/*
|
||||
* since AVX frequency can be different to base frequency, limit
|
||||
* use of AVX2 version to later plaforms, not all those that could
|
||||
@ -3196,14 +3196,15 @@ i40e_set_default_pctype_table(struct rte_eth_dev *dev)
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef RTE_LIBRTE_I40E_INC_VECTOR
|
||||
/* Stubs needed for linkage when CONFIG_RTE_LIBRTE_I40E_INC_VECTOR is set to 'n' */
|
||||
__rte_weak int
|
||||
int
|
||||
i40e_rx_vec_dev_conf_condition_check(struct rte_eth_dev __rte_unused *dev)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
__rte_weak uint16_t
|
||||
uint16_t
|
||||
i40e_recv_pkts_vec(
|
||||
void __rte_unused *rx_queue,
|
||||
struct rte_mbuf __rte_unused **rx_pkts,
|
||||
@ -3212,7 +3213,7 @@ i40e_recv_pkts_vec(
|
||||
return 0;
|
||||
}
|
||||
|
||||
__rte_weak uint16_t
|
||||
uint16_t
|
||||
i40e_recv_scattered_pkts_vec(
|
||||
void __rte_unused *rx_queue,
|
||||
struct rte_mbuf __rte_unused **rx_pkts,
|
||||
@ -3221,7 +3222,35 @@ i40e_recv_scattered_pkts_vec(
|
||||
return 0;
|
||||
}
|
||||
|
||||
__rte_weak uint16_t
|
||||
int
|
||||
i40e_rxq_vec_setup(struct i40e_rx_queue __rte_unused *rxq)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
i40e_txq_vec_setup(struct i40e_tx_queue __rte_unused *txq)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
void
|
||||
i40e_rx_queue_release_mbufs_vec(struct i40e_rx_queue __rte_unused*rxq)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
uint16_t
|
||||
i40e_xmit_fixed_burst_vec(void __rte_unused * tx_queue,
|
||||
struct rte_mbuf __rte_unused **tx_pkts,
|
||||
uint16_t __rte_unused nb_pkts)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif /* ifndef RTE_LIBRTE_I40E_INC_VECTOR */
|
||||
|
||||
#ifndef CC_AVX2_SUPPORT
|
||||
uint16_t
|
||||
i40e_recv_pkts_vec_avx2(void __rte_unused *rx_queue,
|
||||
struct rte_mbuf __rte_unused **rx_pkts,
|
||||
uint16_t __rte_unused nb_pkts)
|
||||
@ -3229,7 +3258,7 @@ i40e_recv_pkts_vec_avx2(void __rte_unused *rx_queue,
|
||||
return 0;
|
||||
}
|
||||
|
||||
__rte_weak uint16_t
|
||||
uint16_t
|
||||
i40e_recv_scattered_pkts_vec_avx2(void __rte_unused *rx_queue,
|
||||
struct rte_mbuf __rte_unused **rx_pkts,
|
||||
uint16_t __rte_unused nb_pkts)
|
||||
@ -3237,36 +3266,11 @@ i40e_recv_scattered_pkts_vec_avx2(void __rte_unused *rx_queue,
|
||||
return 0;
|
||||
}
|
||||
|
||||
__rte_weak int
|
||||
i40e_rxq_vec_setup(struct i40e_rx_queue __rte_unused *rxq)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
__rte_weak int
|
||||
i40e_txq_vec_setup(struct i40e_tx_queue __rte_unused *txq)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
__rte_weak void
|
||||
i40e_rx_queue_release_mbufs_vec(struct i40e_rx_queue __rte_unused*rxq)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
__rte_weak uint16_t
|
||||
i40e_xmit_fixed_burst_vec(void __rte_unused * tx_queue,
|
||||
struct rte_mbuf __rte_unused **tx_pkts,
|
||||
uint16_t __rte_unused nb_pkts)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
__rte_weak uint16_t
|
||||
uint16_t
|
||||
i40e_xmit_pkts_vec_avx2(void __rte_unused * tx_queue,
|
||||
struct rte_mbuf __rte_unused **tx_pkts,
|
||||
uint16_t __rte_unused nb_pkts)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif /* ifndef CC_AVX2_SUPPORT */
|
||||
|
@ -35,8 +35,10 @@ if arch_subdir == 'x86'
|
||||
# a. we have AVX supported in minimum instruction set baseline
|
||||
# b. it's not minimum instruction set, but supported by compiler
|
||||
if dpdk_conf.has('RTE_MACHINE_CPUFLAG_AVX2')
|
||||
cflags += ['-DCC_AVX2_SUPPORT']
|
||||
sources += files('i40e_rxtx_vec_avx2.c')
|
||||
elif cc.has_argument('-mavx2')
|
||||
cflags += ['-DCC_AVX2_SUPPORT']
|
||||
i40e_avx2_lib = static_library('i40e_avx2_lib',
|
||||
'i40e_rxtx_vec_avx2.c',
|
||||
dependencies: [static_rte_ethdev,
|
||||
|
Loading…
Reference in New Issue
Block a user