1999-11-11 12:20:56

by Stephen C. Tweedie

[permalink] [raw]
Subject: Re: linux interrupt handling problem

Hi,

On Wed, 10 Nov 1999 08:54:30 -0700, [email protected] said:

> On Wed, Nov 10, 1999 at 11:30:53AM +0100, Roman Zippel wrote:
>> That's a problem I would like to address later, since it's a perfomance
>> only problem, where the sti() stuff is also a portability problem.

> Any measurements to show that this is a real problem? My intuition
> is that the simple Linux model has enormous advantages over
> more complex schemes.

There was a Usenix paper a couple of years ago:

http://www.usenix.org/publications/library/proceedings/ana97/small.html

at which they did an evaluation of the normal splx() mechanism in NetBSD
with a simplified, Linux-like mechanism. The simpler one won
hands-down. They did note that spl made sense on older machines where
interrupt routines were, relatively, much longer due to the slower clock
speeds, but concluded that it didn't make sense on modern, fast CPUs.

Their proposal in the end is to protect kernel critical sections with
cli/sti, but to keep interrupts enabled during IRQs and rely on the PIC
to keep the interrupt line disabled during the ISR. Odd, that looks
familiar, doesn't it? :-)

--Stephen