Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 05 Oct 2000 14:30:39 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Bernd Walter <ticso@cicely5.cicely.de>
Cc:        Jake Burkholder <jburkhol@home.com>, Boris Popov <bp@butya.kz>, freebsd-smp@FreeBSD.org, Mark Murray <mark@grondar.za>
Subject:   Re: Problems with kthread_exit() and SMPng
Message-ID:  <XFMail.001005143039.jhb@FreeBSD.org>
In-Reply-To: <20001005223733.A40689@cicely5.cicely.de>

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

On 05-Oct-00 Bernd Walter wrote:
> On Thu, Oct 05, 2000 at 11:53:53AM -0700, John Baldwin wrote:
>> 
>> On 05-Oct-00 Mark Murray wrote:
>> > Hmm. I'll try that. Will the (kthread_)exit release Giant?
>> 
>> Yes.  cpu_exit() (called by exit1()) releases Giant as its
>> final act before calling cpu_switch() (should be cpu_throw())
>> to run the next process.
>> 
>> > My thread does a lot of work; if it holds Giant, then it can't be
>> > preempted. That would be a problem.
>> 
>> Errr, it can be pre-empted,  but your thread doesn't need Giant except
>> for kthread_exit().
>> 
>> > There is another problem; printf's inside a kthread corrupt like
>> > crazy. They look very unthreadsafe.
>> 
>> printf() is not MP safe. :-P  You probably want to grab Giant before
>> calling printf().
> 
> Isn't it better to just fetch Giant inside of kthread_exit() and printf()?
> Giant is recursive so it shouldn't hurt much if we allocate it while
> already owning it but we don't need to rechange thread safe code after
> these restrictions fall.

Ugh.  If I'm going to go stick mutexes in code, I want to put the
right ones in. :-P  

> -- 
> B.Walter              COSMO-Project         http://www.cosmo-project.de
> ticso@cicely.de         Usergroup           info@cosmo-project.de

-- 

John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.001005143039.jhb>