Nested interrupts in IA64 linux?

From: <>
Date: 2004-02-14 17:40:27
A couple of queries on interrupts in IA64.

kernel Version: linux 2.6.2
Platform: Itanium-2 (2 CPU) 

1) Intel's manual  (Intel Itanium Architecture: Software Developers
Manual : Volume II) Chapter 3.4.3 (page 2:417) says that nested
interrupts are not supported. But the linux kernel source code 
(ia64_handle_irq) has some comment regarding handling nested 
interrupts. It's a little confusing here. Can anyone throw
some light on this? 

Does Linux support nested interrupts on IA64?

We tried to check our assumption (that it doesn't) by putting a 
mdelay in an interrupt context and found that no other interrupts are
received before the current one is over.

2) We tried to ack the current interrupt. The interrupt we were working
on was level triggered (USB keyboard). 
We did this:
a. Called ->end() of the interrupt descriptor. This will send an EOI to
the IOSAPIC. b. Called ia64_eoi() which sends eoi to the processor. c.
These steps should enable the next interrupts(??). d. We polled on ivr
to get the next interrupts in a loop as done in ia64_handle_irq
function). But this loop never returns a valid interrupt and continues

The question is: 
are ->end() and ia64_eoi() (along with local_irq_enable()) sufficient to

ack an interrupt and accept the next one?

We are trying to do this because we want to dump (using LKCD) in a
interrupt context. This dump performs write on the SCSI device(Fusion
but we never seem to receive a SCSI interrupt indicating write

This works perfectly fine if it is not from an interrupt context. Any
pointers will be really helpful.

Thanks and regards,
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to
More majordomo info at
Received on Sat Feb 14 01:41:09 2004

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:22 EST