Module Name: src Committed By: msaitoh Date: Sat Dec 30 06:16:44 UTC 2023
Modified Files: src/sys/dev/pci/ixgbe: ix_txrx.c ixgbe.h Log Message: ixgbe: Use #ifdef RSC This feature (hardware receive side coalescing) has been disabled all along, so enclose the code with #ifdef RSC. To generate a diff of this commit: cvs rdiff -u -r1.115 -r1.116 src/sys/dev/pci/ixgbe/ix_txrx.c cvs rdiff -u -r1.97 -r1.98 src/sys/dev/pci/ixgbe/ixgbe.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/ixgbe/ix_txrx.c diff -u src/sys/dev/pci/ixgbe/ix_txrx.c:1.115 src/sys/dev/pci/ixgbe/ix_txrx.c:1.116 --- src/sys/dev/pci/ixgbe/ix_txrx.c:1.115 Fri Dec 29 07:36:47 2023 +++ src/sys/dev/pci/ixgbe/ix_txrx.c Sat Dec 30 06:16:44 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: ix_txrx.c,v 1.115 2023/12/29 07:36:47 msaitoh Exp $ */ +/* $NetBSD: ix_txrx.c,v 1.116 2023/12/30 06:16:44 msaitoh Exp $ */ /****************************************************************************** @@ -64,13 +64,14 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ix_txrx.c,v 1.115 2023/12/29 07:36:47 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ix_txrx.c,v 1.116 2023/12/30 06:16:44 msaitoh Exp $"); #include "opt_inet.h" #include "opt_inet6.h" #include "ixgbe.h" +#ifdef RSC /* * HW RSC control: * this feature only works with @@ -84,6 +85,7 @@ __KERNEL_RCSID(0, "$NetBSD: ix_txrx.c,v * to enable. */ static bool ixgbe_rsc_enable = FALSE; +#endif #ifdef IXGBE_FDIR /* @@ -124,8 +126,9 @@ static __inline void ixgbe_rx_input(stru static int ixgbe_dma_malloc(struct ixgbe_softc *, bus_size_t, struct ixgbe_dma_alloc *, int); static void ixgbe_dma_free(struct ixgbe_softc *, struct ixgbe_dma_alloc *); - +#ifdef RSC static void ixgbe_setup_hw_rsc(struct rx_ring *); +#endif /************************************************************************ * ixgbe_legacy_start_locked - Transmit entry point @@ -1258,6 +1261,7 @@ ixgbe_txeof(struct tx_ring *txr) return ((limit > 0) ? false : true); } /* ixgbe_txeof */ +#ifdef RSC /************************************************************************ * ixgbe_rsc_count * @@ -1334,6 +1338,7 @@ ixgbe_setup_hw_rsc(struct rx_ring *rxr) rxr->hw_rsc = TRUE; } /* ixgbe_setup_hw_rsc */ +#endif /************************************************************************ * ixgbe_refresh_mbufs @@ -1596,10 +1601,15 @@ ixgbe_setup_receive_ring(struct rx_ring /* * Now set up the LRO interface */ +#ifdef RSC if (ixgbe_rsc_enable) ixgbe_setup_hw_rsc(rxr); +#endif #ifdef LRO - else if (ifp->if_capenable & IFCAP_LRO) { +#ifdef RSC + else +#endif + if (ifp->if_capenable & IFCAP_LRO) { device_t dev = sc->dev; int err = tcp_lro_init(lro); if (err) { @@ -1867,7 +1877,10 @@ ixgbe_rxeof(struct ix_queue *que) struct mbuf *sendmp, *mp; struct mbuf *newmp; - u32 rsc, ptype; +#ifdef RSC + u32 rsc; +#endif + u32 ptype; u16 len; u16 vtag = 0; bool eop; @@ -1902,7 +1915,9 @@ ixgbe_rxeof(struct ix_queue *que) loopcount++; sendmp = newmp = NULL; nbuf = NULL; +#ifdef RSC rsc = 0; +#endif cur->wb.upper.status_error = 0; rbuf = &rxr->rx_buffers[i]; mp = rbuf->buf; @@ -1988,6 +2003,7 @@ ixgbe_rxeof(struct ix_queue *que) * Figure out the next descriptor * of this frame. */ +#ifdef RSC if (rxr->hw_rsc == TRUE) { rsc = ixgbe_rsc_count(cur); rxr->rsc_num += (rsc - 1); @@ -1995,7 +2011,9 @@ ixgbe_rxeof(struct ix_queue *que) if (rsc) { /* Get hardware index */ nextp = ((staterr & IXGBE_RXDADV_NEXTP_MASK) >> IXGBE_RXDADV_NEXTP_SHIFT); - } else { /* Just sequential */ + } else +#endif + { /* Just sequential */ nextp = i + 1; if (nextp == sc->num_rx_desc) nextp = 0; Index: src/sys/dev/pci/ixgbe/ixgbe.h diff -u src/sys/dev/pci/ixgbe/ixgbe.h:1.97 src/sys/dev/pci/ixgbe/ixgbe.h:1.98 --- src/sys/dev/pci/ixgbe/ixgbe.h:1.97 Sat Dec 30 06:16:03 2023 +++ src/sys/dev/pci/ixgbe/ixgbe.h Sat Dec 30 06:16:44 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: ixgbe.h,v 1.97 2023/12/30 06:16:03 msaitoh Exp $ */ +/* $NetBSD: ixgbe.h,v 1.98 2023/12/30 06:16:44 msaitoh Exp $ */ /****************************************************************************** SPDX-License-Identifier: BSD-3-Clause @@ -415,7 +415,9 @@ struct rx_ring { struct lro_ctrl lro; bool lro_enabled; #endif /* LRO */ +#ifdef RSC bool hw_rsc; +#endif bool vtag_strip; bool discard_multidesc; u16 next_to_refresh; @@ -437,7 +439,9 @@ struct rx_ring { struct evcnt rx_bytes; struct evcnt rx_discarded; struct evcnt no_mbuf; +#ifdef RSC u64 rsc_num; +#endif }; struct ixgbe_vf {