Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 May 2003 17:04:53 -0400 (EDT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Petri Helenius <pete@he.iki.fi>
Cc:        sos@FreeBSD.org
Subject:   Re: kthread_exit and giant
Message-ID:  <Pine.NEB.3.96L.1030505170250.86150H-100000@fledge.watson.org>
In-Reply-To: <02ed01c31347$56f023d0$932a40c1@PHE>

next in thread | previous in thread | raw e-mail | index | archive | help

On Mon, 5 May 2003, Petri Helenius wrote:

> > The kthread is supposed to acquire Giant before calling kthread_exit().
> > Actually, my guess is that the ar kthread needs to acquire Giant for the
> > lifetime of the thread.  I have an untested patch locally:
> > 
> I thought the lifetime of the thread is the duration of the rebuild
> process? Which can be minutes to hours. Locking giant for that kind of
> time does not sound right, so locking it just before thread exit sounds
> like the right thing to do, as long as the code othervise keeps critical
> sections locked. 

Giant is a funnel-style mutex intended to emulate the older spinlock
protection of the kernel from parallelism.  It operates somewhat like a
normal sleep mutex except that you release the mutex whenever you (the
thread holding Giant) sleep so if the rebuild process involves sleeping,
it will release Giant every time it sleeps. 

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert@fledge.watson.org      Network Associates Laboratories





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1030505170250.86150H-100000>