On Thu, Dec 15, 2005 at 09:45:10AM -0800, Luck, Tony wrote:
> There was a USENIX paper a couple of decades ago that described how
> to do a fast s/w disable of interrupts on machines where really disabling
> interrupts was expensive. The rough gist was that the spl[1-7]()
> functions would just set a flag in memory to hold the desired interrupt
> mask. If an interrupt actually occurred when it was s/w blocked, the
> handler would set a pending flag, and just rfi with interrupts disabled.
> Then the splx() code checked to see whether there was a pending interrupt
> and dealt with it if there was.
... and this is currently implemented (but not yet merged to mainline) in
UML.
Jeff