Index: share/man/man4/bge.4 =================================================================== --- share/man/man4/bge.4 (revision 249529) +++ share/man/man4/bge.4 (working copy) @@ -197,6 +197,25 @@ Allow the ASF feature for cooperating with IPMI. Can cause system lockup problems on a small number of systems. Enabled by default. +.It Va hw.bge.bge_rxd +Controls the size of the ring buffer used to enqueue data from the hardware. +Defaults to 512. +.It Va hw.bge.bge_rx_coal_ticks +Controls the maximum time to wait for RX packets before updating the status to +the host. +Defaults to 150ms. +.It Va hw.bge.bge_tx_coal_ticks +Controls the maximum time to wait for TX packets before updating the status to +the host. +Defaults to 150ms. +.It Va hw.bge.bge_rx_max_coal_bds +Controls the maximum number of RX packes to be processed before updating the +status to the host. +Defaults to 10. +.It Va hw.bge.bge_tx_max_coal_bds +Controls the maximum number of TX packes to be processed before updating the +status to the host. +Defaults to 10. .It Va dev.bge.%d.msi Non-zero value enables MSI support on the Ethernet hardware. The default value is 1. @@ -243,6 +262,10 @@ The device has stopped responding to the network, or there is a problem with the network connection (cable). .El +.Sh SUPPORT +For general information and support, +go to the Broadcom NIC Open Source Developer Resource Site: +.Pa http://www.broadcom.com/support/ethernet_nic/open_source.php . .Sh SEE ALSO .Xr altq 4 , .Xr arp 4 , Index: sys/dev/bge/if_bge.c =================================================================== --- sys/dev/bge/if_bge.c (revision 249529) +++ sys/dev/bge/if_bge.c (working copy) @@ -530,8 +530,18 @@ DRIVER_MODULE(miibus, bge, miibus_driver, miibus_devclass, 0, 0); static int bge_allow_asf = 1; +static int bge_rxd = BGE_STD_RX_RING_SZ; +static int bge_rx_coal_ticks = 150; +static int bge_tx_coal_ticks = 150; +static int bge_rx_max_coal_bds = 10; +static int bge_tx_max_coal_bds = 10; TUNABLE_INT("hw.bge.allow_asf", &bge_allow_asf); +TUNABLE_INT("hw.bge.rxd", &bge_rxd); +TUNABLE_INT("hw.bge.rx_int_delay", &bge_rx_coal_ticks); +TUNABLE_INT("hw.bge.tx_int_delay", &bge_tx_coal_ticks); +TUNABLE_INT("hw.bge.rx_coal_desc", &bge_rx_max_coal_bds); +TUNABLE_INT("hw.bge.tx_coal_desc", &bge_tx_max_coal_bds); static SYSCTL_NODE(_hw, OID_AUTO, bge, CTLFLAG_RD, 0, "BGE driver parameters"); SYSCTL_INT(_hw_bge, OID_AUTO, allow_asf, CTLFLAG_RD, &bge_allow_asf, 0, @@ -1449,12 +1459,12 @@ { int error, i; - bzero(sc->bge_ldata.bge_rx_std_ring, BGE_STD_RX_RING_SZ); + bzero(sc->bge_ldata.bge_rx_std_ring, bge_rxd); sc->bge_std = 0; - for (i = 0; i < BGE_STD_RX_RING_CNT; i++) { + for (i = 0; i < bge_rxd; i++) { if ((error = bge_newbuf_std(sc, i)) != 0) return (error); - BGE_INC(sc->bge_std, BGE_STD_RX_RING_CNT); + BGE_INC(sc->bge_std, bge_rxd); } bus_dmamap_sync(sc->bge_cdata.bge_rx_std_ring_tag, @@ -3635,10 +3645,10 @@ /* Set default tuneable values. */ sc->bge_stat_ticks = BGE_TICKS_PER_SEC; - sc->bge_rx_coal_ticks = 150; - sc->bge_tx_coal_ticks = 150; - sc->bge_rx_max_coal_bds = 10; - sc->bge_tx_max_coal_bds = 10; + sc->bge_rx_coal_ticks = bge_rx_coal_ticks; + sc->bge_tx_coal_ticks = bge_tx_coal_ticks; + sc->bge_rx_max_coal_bds = bge_rx_max_coal_bds; + sc->bge_tx_max_coal_bds = bge_tx_max_coal_bds; /* Initialize checksum features to use. */ sc->bge_csum_features = BGE_CSUM_FEATURES;