Date: Fri, 16 Jan 2004 16:59:42 -0500 From: John Baldwin <jhb@FreeBSD.org> To: des@des.no (Dag-Erling =?iso-8859-1?q?Sm=F8rgrav?=) Cc: current@freebsd.org Subject: Re: Panic with this morning's (~9am EDT, 15 jan 2004) sources. Message-ID: <200401161659.42394.jhb@FreeBSD.org> In-Reply-To: <xzpr7xzsj20.fsf@dwp.des.no> References: <EE3D3FBAFFCAED448C21C398FDAD91AC0108D8@EBE1.gc.nat> <200401161523.32120.jhb@FreeBSD.org> <xzpr7xzsj20.fsf@dwp.des.no>
next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 16 January 2004 04:03 pm, Dag-Erling Smørgrav wrote:
> John Baldwin <jhb@FreeBSD.org> writes:
> > while (newfdp blah fdp) {
> > FILEDESC_UNLOCK(fdp);
> > FILEDESC_LOCK(newfdp);
> > fd_growtable(newfdp);
> > FILEDESC_UNLOCK(newfdp);
> > FILEDESC_LOCK(fdp);
> > }
>
> I guess... seems like a bloody waste of cycles
You could only lock newfdp #ifdef INVARIANTS perhaps since that is the only
reason you are doing it. That doesn't pessimize production kernels while
still letting your assertions work ok. You could also perhaps tweak the
mtx_assert to somehow check the state of the fd pointer to see if it is a new
table (refcount of 0 or some such)
--
John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200401161659.42394.jhb>
