Date: Wed, 19 Sep 2012 19:19:56 +0400 From: Gleb Smirnoff <glebius@FreeBSD.org> To: John Baldwin <jhb@FreeBSD.org> Cc: freebsd-net@FreeBSD.org, Ryan Stone <rysto32@gmail.com> Subject: Re: What's the latest on fixing IFF_DRV_OACTIVE/if_start/etc? Message-ID: <20120919151956.GL85604@FreeBSD.org> In-Reply-To: <201209171316.45029.jhb@freebsd.org> References: <CAFMmRNzkwbQpUZ3OOoMKVdrz=dePc5fkeX3m-5vXtiWJ7qXwVA@mail.gmail.com> <201209171316.45029.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Sep 17, 2012 at 01:16:45PM -0400, John Baldwin wrote: J> On Monday, September 17, 2012 11:49:59 am Ryan Stone wrote: J> > I know that there have been a lot of discussions about fixing how J> > packets are handed off to ifnets due to the current methods being J> > extremely race-prone. Has there been any consensus on how the problem J> > is going to be solved? J> > J> > In my particular case, I've seen an if_bridge interface whose if_snd J> > queue is full, and once an ifnet reaches that point it will never J> > transmit anything ever again unless its driver manually calls the J> > start method somehow. J> > J> > As a short-term fix I'm temped to call to if_start in IFQ_HANDOFF_ADJ J> > even if IFQ_ENQUEUE returns an error, to ensure that the queue will be J> > drained eventually, but I'm wondering if people are actively working J> > on longer-term fixes. J> J> I think for if_bridge the fix is that it no longer uses if_start. :) And this is already in head. :) -- Totus tuus, Glebius.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120919151956.GL85604>