bnx: Disable RX max BDs based interrupt moderation
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Wed, 8 Aug 2012 13:11:11 +0000 (21:11 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Wed, 8 Aug 2012 13:11:11 +0000 (21:11 +0800)
The RX max coalesce BDs is limited to 255, which means that the chip will
generate ~5800 interrupts/s when it sinks 1.48Mpps tiny packets.  However,
interrupt rate at 4000Hz is already enough for the chip to sink 1.48Mpps
tiny packets, so ticks based RX interrupt moderation should be prefered.

sys/dev/netif/bnx/if_bnx.c
sys/dev/netif/bnx/if_bnxvar.h

index f8129cc..d049476 100644 (file)
@@ -1964,8 +1964,8 @@ bnx_attach(device_t dev)
        sc->bnx_tx_coal_ticks = BNX_TX_COAL_TICKS_DEF;
        sc->bnx_rx_coal_bds = BNX_RX_COAL_BDS_DEF;
        sc->bnx_tx_coal_bds = BNX_TX_COAL_BDS_DEF;
-       sc->bnx_rx_coal_bds_int = BNX_RX_COAL_BDS_DEF;
-       sc->bnx_tx_coal_bds_int = BNX_TX_COAL_BDS_DEF;
+       sc->bnx_rx_coal_bds_int = BNX_RX_COAL_BDS_INT_DEF;
+       sc->bnx_tx_coal_bds_int = BNX_TX_COAL_BDS_INT_DEF;
 
        /* Set up ifnet structure */
        ifp->if_softc = sc;
index 6c09470..95d8cac 100644 (file)
@@ -284,12 +284,14 @@ struct bnx_softc {
 
 /* RX coalesce BDs */
 #define BNX_RX_COAL_BDS_MIN    0
-#define BNX_RX_COAL_BDS_DEF    80
+#define BNX_RX_COAL_BDS_DEF    0
+#define BNX_RX_COAL_BDS_INT_DEF        80
 #define BNX_RX_COAL_BDS_MAX    255
 
 /* TX coalesce BDs */
 #define BNX_TX_COAL_BDS_MIN    0
 #define BNX_TX_COAL_BDS_DEF    128
+#define BNX_TX_COAL_BDS_INT_DEF        128
 #define BNX_TX_COAL_BDS_MAX    255
 
 #endif /* !_IF_BNXVAR_H_ */