Date: Tue, 22 Aug 2006 13:20:23 +0900 From: Pyun YongHyeon <pyunyh@gmail.com> To: freebsd-current@FreeBSD.org Subject: call for bge(4) testers Message-ID: <20060822042023.GC12848@cdnetworks.co.kr>
next in thread | raw e-mail | index | archive | help
--Nq2Wo0NMKNjxTN9z Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi, After fixing em(4) watchdog bug, I looked over bge(4) and I think bge(4) may suffer from the same issue. So if you have seen occasional watchdog timeout errors on bge(4) please give the attached patch a try. The patch does fix false watchdog timeout error only. Typical pheonoma for false watchdog timeout error are o polling(4) fix the issue o random watchdog error If my patch fix the issue you could see the following messages. "missing Tx completion interrupt!" or "link lost -- resetting" Thanks. -- Regards, Pyun YongHyeon --Nq2Wo0NMKNjxTN9z Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="bge.watchdog.patch" Index: if_bge.c =================================================================== RCS file: /pool/ncvs/src/sys/dev/bge/if_bge.c,v retrieving revision 1.138 diff -u -r1.138 if_bge.c --- if_bge.c 18 Aug 2006 13:53:53 -0000 1.138 +++ if_bge.c 22 Aug 2006 04:18:12 -0000 @@ -3452,12 +3452,29 @@ sc = ifp->if_softc; - if_printf(ifp, "watchdog timeout -- resetting\n"); + BGE_LOCK(sc); + /* + * Reclaim first as there is a possibility of losing Tx completion + * interrupts. Possible cause of missing Tx completion interrupts + * comes from Tx interrupt moderation mechanism(delayed interrupts) + * or chipset bug. + */ + bge_txeof(sc); + if (sc->bge_txcnt == 0) { + if_printf(ifp, "missing Tx completion interrupt!\n"); + BGE_UNLOCK(sc); + return; + } + if (sc->bge_link) + if_printf(ifp, "watchdog timeout -- resetting\n"); + else + if_printf(ifp, "link lost -- resetting\n"); ifp->if_drv_flags &= ~IFF_DRV_RUNNING; - bge_init(sc); + bge_init_locked(sc); ifp->if_oerrors++; + BGE_UNLOCK(sc); } /* --Nq2Wo0NMKNjxTN9z--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060822042023.GC12848>