:
:On Sat, 23 Feb 2002, Matthew Dillon wrote:
:
:> :It's too messy and unfinished (doesn't work right for SMP or irqs >= 16),
:> :and dificult to untangle from my other patches. I posted these partial
:> :ones to attempt to inhibit() recomplication of the current critical*
:> :functions in directions that I don't want to go :-).
:>
:> Oh, ok. Hmm. Well, do you mind if I throw together an interrupt-set-cli-
:> in-return-frame patch set? I think it would wind up being just as fast.
:
:I don't see how that would work. We need to call critical_enter() from
:ordinary code, so there is no free frame pop.
:
:Bruce
I'm trying it your way, with an ipending variable.
The set-cli-in-return-frame mechanism would only work well for level
interrupts. Basically the interrupt occurs and you set PS_I in the
return frame (that was pushed on entry to the interrupt).
critical_exit() would then detect the 1->0 transition and simply STI.
But since we have a combination of level and edge it gets too messy for
my tastes, so I'm trying it with an ipending variable.
-Matt
Matthew Dillon
<[EMAIL PROTECTED]>
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message