Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Jul 2006 23:25:28 -0700
From:      Paul Saab <ps@freebsd.org>
To:        John Baldwin <jhb@freebsd.org>
Cc:        David Christensen <davidch@broadcom.com>, Olivier Mueller <om-lists-bsd@omx.ch>, freebsd-hardware@freebsd.org
Subject:   Re: dell poweredge 1950 : not rebooting under 6.1 (sometimes) +	bce0 issues
Message-ID:  <44BDD058.5030607@freebsd.org>
In-Reply-To: <200607181500.21683.jhb@freebsd.org>
References:  <1152697468.31818.15.camel@olipc.insign.local>	<1153221904.23956.25.camel@olipc.insign.local> <200607181500.21683.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
revision 1.4 needs to be MFC'd


John Baldwin wrote:
> On Tuesday 18 July 2006 07:25, Olivier Mueller wrote:
>   
>> On Wed, 2006-07-12 at 11:44 +0200, Olivier Mueller wrote:
>>     
>>> Any guess about what I should try?   I recompiled the kernel
>>> with & without apci support or some different options, but it didn't
>>> helped yet. 
>>>       
>> Another problem: I wanted to transfer large amount of data (10GB) using
>> rsync via the network, and just after 60MB, the network card won't
>> answser anymore, and here is what is displayed in dmesg:
>>
>> bce0: /usr/src/sys/dev/bce/if_bce.c(4644): Error mapping mbuf into TX
>> chain!
>> bce0: /usr/src/sys/dev/bce/if_bce.c(4644): Error mapping mbuf into TX
>> chain!
>> bce0: /usr/src/sys/dev/bce/if_bce.c(4644): Error mapping mbuf into TX
>> chain!
>> [...]
>>     
>
> This sounds like it is out of tx descriptors.  Do you ever get a watchdog 
> timeout message?  If not, can you try this patch:
>
> Index: if_bce.c
> ===================================================================
> RCS file: /usr/cvs/src/sys/dev/bce/if_bce.c,v
> retrieving revision 1.5
> diff -u -r1.5 if_bce.c
> --- if_bce.c	12 Jul 2006 23:13:09 -0000	1.5
> +++ if_bce.c	18 Jul 2006 18:59:45 -0000
> @@ -4391,6 +4391,9 @@
>  			DBRUNIF(1, sc->tx_mbuf_alloc--);
>  
>  			ifp->if_opackets++;
> +
> +			/* Clear the TX timeout timer. */
> +			ifp->if_timer = 0;
>  		}
>  
>  		sc->used_tx_bd--;
> @@ -4406,9 +4409,6 @@
>  			BUS_SPACE_BARRIER_READ);
>  	}
>  
> -	/* Clear the TX timeout timer. */
> -	ifp->if_timer = 0;
> -
>  	/* Clear the tx hardware queue full flag. */
>  	if ((sc->used_tx_bd + BCE_TX_SLACK_SPACE) < USABLE_TX_BD) {
>  		DBRUNIF((ifp->if_drv_flags & IFF_DRV_OACTIVE),
> @@ -5031,10 +5031,12 @@
>  
>  	/* DBRUN(BCE_FATAL, bce_breakpoint(sc)); */
>  
> +	BCE_LOCK(sc);
>  	ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
>  
> -	bce_init(sc);
> +	bce_init_locked(sc);
>  	ifp->if_oerrors++;
> +	BCE_UNLOCK(sc);
>  
>  }
>  
>
>   



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44BDD058.5030607>