:..
:> cpu_critical_enter() to a null version to prevent spinlocks masking
:> interrupts doesn't work very well because it is used for other things
:> that really do need to mask interrupts. Having 2 levels for
:> cpu_critical_enter() (on that masks normal interrupts and one that
:> masks fast interrupts) would work but I think there are already too
:> many levels of critical_enter()s.
:
:I think having the sparc-like API of intr_disable() / intr_restore() that we
:used to use to fix the places that assume too many implementation details of
:cpu_critical_foo() would be a good first step so that cpu_critical_foo() can be
:relegated back to supporting non-preemption (and no other spinlocks) and
:nothing else.
:
:> Bruce
:
:--
:
:John Baldwin <[EMAIL PROTECTED]> <>< http://www.FreeBSD.org/~jhb/
I consider this a mistake that inappropriately locks MI code into
architecture-specific (MD) features, especially considering that there
are only two places in the codebase that actually make this assumption
right now and both can be easily fixed. It makes no sense to me to
abstract out a third API (let alone making cpu_critical_*() available
to the MI code) when the existing critical_*() API will do the job
just fine.
-Matt
Matthew Dillon
<[EMAIL PROTECTED]>
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message