fast_IRQ##_interrupt() Question(s)

Ingo Molnar (mingo@pc5829.hil.siemens.co.at)
Mon, 13 May 1996 21:24:42 +0200 (MET DST)


in arch/asm-i386/irq.h,

A) every interrupt handler starts with code like this:

SAVE_MOST \
ACK_##chip(mask) \

is there any gain in splitting "SAVE_MOST" into two parts, to ACK the
PIC[s] earlier?:

SAVE_EAX \ <----------- since AL gets clobbered in ACK_##chip(mask)
ACK_##chip(mask) \ <----- hey, we've acked the irq a few cycles earlier :)
SAVE_MOST_BUT_EAX \ <----- here we save the rest

B) and a related question. The slow interrupt handlers start with this code:

SYMBOL_NAME_STR(IRQ) #nr "_interrupt:\n\t" \
"pushl $-"#nr"-2\n\t" \

why is "-nr-2" pushed to the stack? A few lines later we do:

"pushl $" #nr "\n\t" \

which is "nr" to the stack. my best guess is that this is some kind
identification. But why twice?

-- a slightly puzzled mingo