Date: Wed, 24 Jun 2009 14:18:52 -0700 From: Sam Leffler <sam@freebsd.org> To: Andrew Gallatin <gallatin@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r194909 - head/sys/dev/mxge Message-ID: <4A42983C.6050307@freebsd.org> In-Reply-To: <200906242109.n5OL9uVb029380@svn.freebsd.org> References: <200906242109.n5OL9uVb029380@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Andrew Gallatin wrote: > Author: gallatin > Date: Wed Jun 24 21:09:56 2009 > New Revision: 194909 > URL: http://svn.freebsd.org/changeset/base/194909 > > Log: > Add a dying flag to prevent races at detach. > > I tried re-ordering ether_ifdetach(), but this created a new race > where sometimes, when under heavy receive load (>1Mpps) and running > tcpdump, the machine would panic. At panic, the ithread was still in > the original (not dead) if_input() path, and was accessing stale BPF > data structs. By using a dying flag, I can close the interface prior > to if_detach() to be certain the interface cannot send packets up in > the middle of ether_ifdetach. > > There's something else wrong. This is just covering up the real bug. Sam
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A42983C.6050307>