Date: Mon, 30 Aug 2004 10:35:05 -0400 (EDT) From: Robert Watson <rwatson@freebsd.org> To: Gleb Smirnoff <glebius@freebsd.org> Cc: FreeBSD current mailing list <current@freebsd.org> Subject: Re: mutex Giant not owned at /usr/src/sys/kern/vfs_vnops.c:120 Message-ID: <Pine.NEB.3.96L.1040830102627.18639D-100000@fledge.watson.org> In-Reply-To: <20040830095729.GD30701@cell.sick.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 30 Aug 2004, Gleb Smirnoff wrote: > B> > This causes Giant to be acquired in the event we enter the linker code > B> > (and hence VFS code) via netgraph ngc_send(). It should be safe in this > B> > context as we enter protocol send routines without mutexes held (i.e., why > B> > we're also able to do blocking memory allocation here.) > B> > B> please commit. > > I think Giant should be acquired in linker_load_module(), and this way > we will prevent this panic in other codepaths. For example in > vfs_mount.c, when vfs will be Giant-free. Have I missed something? Well, one of the primary reasons the linker needs Giant here is its use of VFS. I think for now I'd like to acquire Giant in netgraph so as to expose the use of Giant in that piece of the network stack in the calling code. We might want to add GIANT_REQUIRED assertions in the linker code to make sure we trigger assertions even if the linker doesn't hit VFS to make sure potentially hitting Giant is caught. Robert N M Watson FreeBSD Core Team, TrustedBSD Projects robert@fledge.watson.org Principal Research Scientist, McAfee Research
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1040830102627.18639D-100000>