Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Mar 2001 16:42:03 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Matthew Jacob <mjacob@feral.com>
Cc:        arch@FreeBSD.org
Subject:   Re: Critical Regions Round II
Message-ID:  <XFMail.010322164203.jhb@FreeBSD.org>
In-Reply-To: <Pine.LNX.4.21.0103221539400.14792-100000@zeppo.feral.com>

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

On 22-Mar-01 Matthew Jacob wrote:
>> Hrm, is a ldq any different from a ldl to the alpha?
> 
> Umm... yup... 8 bytes instead of 4...

I meant more in terms of speed, sorry. :)  I knew the 8 vs. 4 bit. :)

>>  If ldq is faster I could
>> make it be a register_t (and thus a __int64_t).  I'll probably change it to
>> register_t on x86 and ia64 as it simply holds the saved value of a register
>> (eflags on x86, psr on ia64).
> 
> I don't think the speed is an issue either way.

Ok, then I'll use register_t since the IPL is part of the process status
register and since it's put in a0 before the PAL call..

>> > What's wrong with alpha having
>> > 
>> > disable_intr()        calls   MD/platform function that disables
>> > mainbridge
>> ints
>> > enable_intr() calls   MD/platform function that enables mainbridge ints
>> > 
>> > I believe that this actually is possible.
>> 
>> That's fine, however, with this change, disable/enable_intr() are actually
>> called in very few places.  Mostly in trap() on x86 due to hacks to work
>> around
>> Cyrix bugs, and in configure().  Everything else uses critical_*.
>> 
>> Well, the joy driver needs fixing (it should use critical_*) as does the
>> bktr
>> driver.  The x86 pcvt driver is also obnoxious, but its x86 specific, and
>> the
>> pc98 spkr and dma drivers should be using critical_* so that they work in a
>> nested fashion.  Hmm, and x86 profiling, though again, that can use
>> critical_*.
>> Kernel x86 profiling with SMP is broken in lots of interesting ways.
> 
> 
> Let's put it this way...if I have to solve what appear to be obscure bugs by
> disabling interrupts in the alpha MD code somewhere, I'll instantiate such a
> function (again) if it's no longer there.

Ok.  Or you could always just call alpha_pal_swpipl(). :)

-- 

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




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