On Thu, 15 Dec 2005 15:38:18 -0500 Jeff Dike wrote: > > 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. And, of course, this is the way the PowerPC iSeries has always worked because we are not allowed to disable hardware interrupts for long periods of time or the hypervisor will consider that our logical partition is dead. -- Cheers, Stephen Rothwell sfr@canb.auug.org.au http://www.canb.auug.org.au/~sfr/