Re: Regular bge watchdog timeouts on 7.0-PRERELEASE

From: Andre Oppermann <andre_at_freebsd.org>
Date: Fri, 18 Jan 2008 19:57:04 +0100
Steve Kargl wrote:
> On Thu, Jan 10, 2008 at 12:00:37PM +0000, Tom Evans wrote:
> 
>>I am encountering regular watchdog timeouts on bge:
>>
>>Jan  9 08:36:11 zoot kernel: bge0: watchdog timeout -- resetting
>>Jan  9 08:36:11 zoot kernel: bge0: link state changed to DOWN
>>Jan  9 08:36:13 zoot kernel: bge0: link state changed to UP
> 
> 
> Add the following to /etc/sysctl.conf
> 
> net.inet.tcp.sendspace=131072
> net.inet.tcp.recvspace=131072

In 7.0 these are automatically tuning and can be left at the default
settings.

> net.inet.tcp.path_mtu_discovery=0

You should not disable path MTU discovery.  It'll most likely break the
internet for you when you encounter for example PPPoE links.

> net.inet.udp.recvspace=65536
> net.inet.raw.recvspace=16384
> kern.ipc.nmbclusters=50000
> kern.ipc.shm_use_phys=1
> net.inet.tcp.rexmit_min=30

These changes do not really have much influence on the bge problem
(at least theoretically).

It really is a driver issue and needs to be fixed in the driver.  As far
as I understand the problem we have a lack of documentation and errata
information.

-- 
Andre

> And then try this patch
> 
> 
> cvs diff: Diffing dev/bge
> Index: dev/bge/if_bge.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/dev/bge/if_bge.c,v
> retrieving revision 1.199
> diff -u -p -r1.199 if_bge.c
> --- dev/bge/if_bge.c	16 Nov 2007 16:39:27 -0000	1.199
> +++ dev/bge/if_bge.c	10 Jan 2008 17:51:38 -0000
> _at__at_ -2454,9 +2454,9 _at__at_ bge_attach(device_t dev)
>  	/* 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_tx_coal_ticks = 1500000;
> +	sc->bge_rx_max_coal_bds = 32;
> +	sc->bge_tx_max_coal_bds = 300;
>  
>  	/* Set up ifnet structure */
>  	ifp = sc->bge_ifp = if_alloc(IFT_ETHER);
> Index: dev/bge/if_bgereg.h
> ===================================================================
> RCS file: /home/ncvs/src/sys/dev/bge/if_bgereg.h,v
> retrieving revision 1.73
> diff -u -p -r1.73 if_bgereg.h
> --- dev/bge/if_bgereg.h	22 May 2007 19:22:58 -0000	1.73
> +++ dev/bge/if_bgereg.h	10 Jan 2008 17:51:38 -0000
> _at__at_ -2342,7 +2342,7 _at__at_ struct bge_gib {
>   * allocated for the standard, mini and jumbo receive rings.
>   */
>  
> -#define	BGE_SSLOTS	256
> +#define	BGE_SSLOTS	512
>  #define	BGE_MSLOTS	256
>  #define	BGE_JSLOTS	384
>  
> 
> 
Received on Fri Jan 18 2008 - 17:57:06 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:26 UTC