Linux – ‘fast interrupts’ in Linux

interruptkernellinux

as far as I know, Linux has 'fast interrupts', those that were requested with SA_INTERRUPT flag; fast interrupts are executed with all other interrupts disabled on the current CPU. But how does it differ from the normal interrupt handler behavior (where)?

Best Answer

As of today, you can mostly forget about the SA_INTERRUPT flag.
In between 2.6.18 and 2.6.24 it was just a migration helper for the new IRQF_DISABLED flag.
2.6.24 removed all SA_* flags and replaced them with IRQF_* flags.
2.6.35 marked this "new" flag as deprecated.

If you have a kernel before 2.6.18, you'll probably won't use it (see Justin's answer).

Today's usage of IRQF_DISABLE differs among the architectures. x86 still only uses it for time critical functions (time.c, hpet.c) and some xen stuff.

Concerning the difference; a normal interrupt can be interrupted by an other interrupt (preemption), a "fast" one on the other hand, can not.