From: Sepherosa Ziehau Date: Wed, 8 Aug 2012 13:11:11 +0000 (+0800) Subject: bnx: Disable RX max BDs based interrupt moderation X-Git-Tag: v3.2.0~442 X-Git-Url: http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/306e54983ee873f2ef1c55b94257b6b1f47c70d3 bnx: Disable RX max BDs based interrupt moderation 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. --- diff --git a/sys/dev/netif/bnx/if_bnx.c b/sys/dev/netif/bnx/if_bnx.c index f8129cc..d049476 100644 --- a/sys/dev/netif/bnx/if_bnx.c +++ b/sys/dev/netif/bnx/if_bnx.c @@ -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; diff --git a/sys/dev/netif/bnx/if_bnxvar.h b/sys/dev/netif/bnx/if_bnxvar.h index 6c09470..95d8cac 100644 --- a/sys/dev/netif/bnx/if_bnxvar.h +++ b/sys/dev/netif/bnx/if_bnxvar.h @@ -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_ */