net/sfc: enable TSO by default
Remove RTE_LIBRTE_SFC_EFX_TSO config option since it is not required any more: - unreasonable limit on number of Tx queues when TSO is not actually required should be solved using per-device parameter - performance difference with and without TSO compiled in is small Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
This commit is contained in:
parent
323706ab8b
commit
2a5a433ba5
@ -261,7 +261,6 @@ CONFIG_RTE_LIBRTE_BNXT_PMD=y
|
||||
#
|
||||
CONFIG_RTE_LIBRTE_SFC_EFX_PMD=y
|
||||
CONFIG_RTE_LIBRTE_SFC_EFX_DEBUG=n
|
||||
CONFIG_RTE_LIBRTE_SFC_EFX_TSO=n
|
||||
|
||||
#
|
||||
# Compile software PMD backed by SZEDATA2 device
|
||||
|
@ -171,12 +171,6 @@ Please note that enabling debugging options may affect system performance.
|
||||
|
||||
Enable compilation of the extra run-time consistency checks.
|
||||
|
||||
- ``CONFIG_RTE_LIBRTE_SFC_EFX_TSO`` (default **n**)
|
||||
|
||||
Toggle TCP segmentation offload support.
|
||||
Enabling the feature limits the number of available transmit queues
|
||||
significantly due to the limited number of adapter TSO contexts.
|
||||
|
||||
|
||||
Per-Device Parameters
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -89,8 +89,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_ev.c
|
||||
SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_port.c
|
||||
SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_rx.c
|
||||
SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_tx.c
|
||||
|
||||
SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_TSO) += sfc_tso.c
|
||||
SRCS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += sfc_tso.c
|
||||
|
||||
VPATH += $(SRCDIR)/base
|
||||
|
||||
@ -140,7 +139,6 @@ DEPDIRS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += lib/librte_kvargs
|
||||
DEPDIRS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += lib/librte_ether
|
||||
DEPDIRS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += lib/librte_mempool
|
||||
DEPDIRS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += lib/librte_mbuf
|
||||
|
||||
DEPDIRS-$(CONFIG_RTE_LIBRTE_SFC_EFX_TSO) += lib/librte_net
|
||||
DEPDIRS-$(CONFIG_RTE_LIBRTE_SFC_EFX_PMD) += lib/librte_net
|
||||
|
||||
include $(RTE_SDK)/mk/rte.lib.mk
|
||||
|
@ -621,13 +621,9 @@ sfc_attach(struct sfc_adapter *sa)
|
||||
if (rc != 0)
|
||||
goto fail_set_rss_defaults;
|
||||
|
||||
#ifdef RTE_LIBRTE_SFC_EFX_TSO
|
||||
sa->tso = efx_nic_cfg_get(sa->nic)->enc_fw_assisted_tso_v2_enabled;
|
||||
if (!sa->tso)
|
||||
sfc_warn(sa, "TSO support isn't available on this adapter");
|
||||
#else /* !RTE_LIBRTE_SFC_EFX_TSO */
|
||||
sa->tso = B_FALSE;
|
||||
#endif /* RTE_LIBRTE_SFC_EFX_TSO */
|
||||
|
||||
sfc_log_init(sa, "fini nic");
|
||||
efx_nic_fini(enp);
|
||||
|
@ -650,7 +650,6 @@ sfc_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
|
||||
*/
|
||||
pkt_descs += sfc_tx_maybe_insert_tag(txq, m_seg, &pend);
|
||||
|
||||
#ifdef RTE_LIBRTE_SFC_EFX_TSO
|
||||
if (m_seg->ol_flags & PKT_TX_TCP_SEG) {
|
||||
/*
|
||||
* We expect correct 'pkt->l[2, 3, 4]_len' values
|
||||
@ -688,7 +687,6 @@ sfc_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
|
||||
* as for the usual non-TSO path
|
||||
*/
|
||||
}
|
||||
#endif /* RTE_LIBRTE_SFC_EFX_TSO */
|
||||
|
||||
for (; m_seg != NULL; m_seg = m_seg->next) {
|
||||
efsys_dma_addr_t next_frag;
|
||||
|
@ -50,9 +50,7 @@ struct sfc_evq;
|
||||
|
||||
struct sfc_tx_sw_desc {
|
||||
struct rte_mbuf *mbuf;
|
||||
#ifdef RTE_LIBRTE_SFC_EFX_TSO
|
||||
uint8_t *tsoh; /* Buffer to store TSO header */
|
||||
#endif /* RTE_LIBRTE_SFC_EFX_TSO */
|
||||
};
|
||||
|
||||
enum sfc_txq_state_bit {
|
||||
@ -116,7 +114,6 @@ void sfc_tx_stop(struct sfc_adapter *sa);
|
||||
uint16_t sfc_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
|
||||
uint16_t nb_pkts);
|
||||
|
||||
#ifdef RTE_LIBRTE_SFC_EFX_TSO
|
||||
/* From 'sfc_tso.c' */
|
||||
int sfc_tso_alloc_tsoh_objs(struct sfc_tx_sw_desc *sw_ring,
|
||||
unsigned int txq_entries, unsigned int socket_id);
|
||||
@ -125,21 +122,6 @@ void sfc_tso_free_tsoh_objs(struct sfc_tx_sw_desc *sw_ring,
|
||||
int sfc_tso_do(struct sfc_txq *txq, unsigned int idx, struct rte_mbuf **in_seg,
|
||||
size_t *in_off, efx_desc_t **pend, unsigned int *pkt_descs,
|
||||
size_t *pkt_len);
|
||||
#else /* !RTE_LIBRTE_SFC_EFX_TSO */
|
||||
static inline int
|
||||
sfc_tso_alloc_tsoh_objs(__rte_unused struct sfc_tx_sw_desc *sw_ring,
|
||||
__rte_unused unsigned int txq_entries,
|
||||
__rte_unused unsigned int socket_id)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void
|
||||
sfc_tso_free_tsoh_objs(__rte_unused struct sfc_tx_sw_desc *sw_ring,
|
||||
__rte_unused unsigned int txq_entries)
|
||||
{
|
||||
}
|
||||
#endif /* RTE_LIBRTE_SFC_EFX_TSO */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user