Date: Mon, 24 Dec 2012 20:01:54 -0500 From: Ryan Stone <rysto32@gmail.com> To: Tsaregorodtsev Denis <telemat@extrim.it> Cc: freebsd-net <freebsd-net@freebsd.org> Subject: Re: 'no buffer space available' after switch goes down on freeBSD 7.3 Message-ID: <CAFMmRNz9VDGg12_XbdhAfURPm3Vs5=nH6aEzqA0281Rq5iOOMA@mail.gmail.com> In-Reply-To: <50D7F61A.5020304@extrim.it> References: <50D45282.5080708@extrim.it> <CAFMmRNy26AvdJjW9N4zPNPYrVYn1a2Qr8W5qy9MTV_30dvCqCA@mail.gmail.com> <50D7F61A.5020304@extrim.it>
next in thread | previous in thread | raw e-mail | index | archive | help
I don't believe that this is fixed in later versions of the driver. The problem is that when the interface loses link the transmit queue can fill up. Once that happens the driver never gets any more calls from the network stack to make it send packets. Pinging the interface fixes it because the driver processes rx.and tx from the same context, so when it receives a packet it starts transmitting again. The patch that I sent fixes the problem by forcing the driver to process the tx queue when ever links goes from down to up.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFMmRNz9VDGg12_XbdhAfURPm3Vs5=nH6aEzqA0281Rq5iOOMA>