Skip site navigation (1)Skip section navigation (2)
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>