Date: Thu, 27 Oct 2005 11:05:58 GMT From: Andreas Klemm <andreas@FreeBSD.org> To: bits_@web.de, andreas@FreeBSD.org, freebsd-bugs@FreeBSD.org, obrien@FreeBSD.org Subject: Re: kern/88045: [nve] [timeout] 6.0rc1: nve0: device timeout (51) Message-ID: <200510271105.j9RB5ww8096224@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200510271105.j9RB5ww8096224>