Re: kthread_exit and giant

From: Robert Watson <rwatson_at_FreeBSD.org>
Date: Mon, 5 May 2003 17:04:53 -0400 (EDT)
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_at_fledge.watson.org      Network Associates Laboratories
Received on Mon May 05 2003 - 12:04:42 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:06 UTC