Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Jan 2001 13:34:34 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Soren Schmidt <sos@freebsd.dk>
Cc:        sos@FreeBSD.org, cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org
Subject:   Re: cvs commit: src/sys/dev/ata ata-all.c
Message-ID:  <XFMail.010115133434.jhb@FreeBSD.org>
In-Reply-To: <200101152123.WAA70376@freebsd.dk>

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

On 15-Jan-01 Soren Schmidt wrote:
> It seems John Baldwin wrote:
>> >> Erm, all of this should be running under Giant, so you shouldn't be
>> >> contending
>> >> on this.  You should probably protect this with a mutex that locks the
>> >> softc
>> >> rather than using atomic operations, btw.
>> > 
>> > If thats correct the change should have no effect right ?
>> 
>> No.  Giant is handled very specially.  We release it before mi_switch() in
>> all
>> cases except for blocking on a mutex.  The order that phk mentioned in his
>> e-mail would result in the variable getting stomped.  In that case though, I
>> think it would get stomped without SMPng as well.
> 
> Hmm, I dont see me changing the cmp and set from multi instructions
> into an atomic one can change anything when its still under giant.

When we switch to the ithread, we release Giant.  However, the interrupt thread
should be delayed until later when you do a tsleep() since our kernel isn't
preemptive just yet.  Let me go look at the code again.

-- 

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 cvs-all" in the body of the message




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