From owner-freebsd-bugs@FreeBSD.ORG Thu Oct 27 11:05:58 2005 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B099E16A421; Thu, 27 Oct 2005 11:05:58 +0000 (GMT) (envelope-from andreas@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5C0B643D49; Thu, 27 Oct 2005 11:05:58 +0000 (GMT) (envelope-from andreas@FreeBSD.org) Received: from freefall.freebsd.org (andreas@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id j9RB5woO096228; Thu, 27 Oct 2005 11:05:58 GMT (envelope-from andreas@freefall.freebsd.org) Received: (from andreas@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id j9RB5ww8096224; Thu, 27 Oct 2005 11:05:58 GMT (envelope-from andreas) Date: Thu, 27 Oct 2005 11:05:58 GMT From: Andreas Klemm Message-Id: <200510271105.j9RB5ww8096224@freefall.freebsd.org> To: bits_@web.de, andreas@FreeBSD.org, freebsd-bugs@FreeBSD.org, obrien@FreeBSD.org Cc: Subject: Re: kern/88045: [nve] [timeout] 6.0rc1: nve0: device timeout (51) X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Oct 2005 11:05:58 -0000 Synopsis: [nve] [timeout] 6.0rc1: nve0: device timeout (51) State-Changed-From-To: open->analyzed State-Changed-By: andreas State-Changed-When: Thu Oct 27 11:00:01 GMT 2005 State-Changed-Why: Answer from Quinton Dolan q (at) OntheNet (dot) com (dot) au: +--------------------- I am not currently tracking FreeBSD development, but I have a good idea what may be contributing to the number of timeout errors you are seeing. Check around line 730 of if_nv.c (or whatever it's called in 6.0) sc->linkup = 0; sc->cur_rx = 0; sc->pending_rxs = 0; + sc->pending_txs = 0; This should mostly eliminate the problem. +--------------------- I added this fix which entirely solves the problem in FreeBSD 6.0rc1: Index: if_nve.c =================================================================== RCS file: /data/ncvs/src/sys/dev/nve/if_nve.c,v retrieving revision 1.7.2.4 diff -u -r1.7.2.4 if_nve.c --- if_nve.c 9 Oct 2005 04:18:17 -0000 1.7.2.4 +++ if_nve.c 27 Oct 2005 09:58:45 -0000 @@ -727,7 +727,7 @@ DEBUGOUT(NVE_DEBUG_INIT, "nve: nve_init_rings - entry\n"); - sc->cur_rx = sc->cur_tx = sc->pending_rxs = sc->pending_txs = 0; + sc->cur_rx = sc->cur_tx = sc->pending_rxs = 0; /* Initialise RX ring */ for (i = 0; i < RX_RING_SIZE; i++) { struct nve_rx_desc *desc = sc->rx_desc + i; This should could/should solve these PRs from 6.0 Beta 3 and Beta 1 as well: - http://www.freebsd.org/cgi/query-pr.cgi?pr=amd64/84027 if_nve gets stuck - http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/85583 [nve] [timeout] send errors ("device timeout") with nVidia Ethernet nve(4) in 6.0-BETA3 Responsible-Changed-From-To: freebsd-bugs->obrien Responsible-Changed-By: andreas Responsible-Changed-When: Thu Oct 27 11:00:01 GMT 2005 Responsible-Changed-Why: Answer from Quinton Dolan q (at) OntheNet (dot) com (dot) au: +--------------------- I am not currently tracking FreeBSD development, but I have a good idea what may be contributing to the number of timeout errors you are seeing. Check around line 730 of if_nv.c (or whatever it's called in 6.0) sc->linkup = 0; sc->cur_rx = 0; sc->pending_rxs = 0; + sc->pending_txs = 0; This should mostly eliminate the problem. +--------------------- I added this fix which entirely solves the problem in FreeBSD 6.0rc1: Index: if_nve.c =================================================================== RCS file: /data/ncvs/src/sys/dev/nve/if_nve.c,v retrieving revision 1.7.2.4 diff -u -r1.7.2.4 if_nve.c --- if_nve.c 9 Oct 2005 04:18:17 -0000 1.7.2.4 +++ if_nve.c 27 Oct 2005 09:58:45 -0000 @@ -727,7 +727,7 @@ DEBUGOUT(NVE_DEBUG_INIT, "nve: nve_init_rings - entry\n"); - sc->cur_rx = sc->cur_tx = sc->pending_rxs = sc->pending_txs = 0; + sc->cur_rx = sc->cur_tx = sc->pending_rxs = 0; /* Initialise RX ring */ for (i = 0; i < RX_RING_SIZE; i++) { struct nve_rx_desc *desc = sc->rx_desc + i; This should could/should solve these PRs from 6.0 Beta 3 and Beta 1 as well: - http://www.freebsd.org/cgi/query-pr.cgi?pr=amd64/84027 if_nve gets stuck - http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/85583 [nve] [timeout] send errors ("device timeout") with nVidia Ethernet nve(4) in 6.0-BETA3 http://www.freebsd.org/cgi/query-pr.cgi?pr=88045