Re: Excessive time to handle interrupts

From: Grant Grundler <iod00d_at_hp.com>
Date: 2004-02-27 13:07:33
On Thu, Feb 26, 2004 at 04:06:07PM -0800, David Mosberger wrote:
> See:
> 
>   http://www.intel.com/design/itanium/downloads/25135001.pdf

I just reviewed section 2.3.2.2 I/O xAPIC Redirection Table.
(See Figure 2-4. I/O xAPIC Redirection Table Entry Definition)

...
> AFAIR, the I/O SAPIC interrupt masking is entirely under control of
> the CPU (i.e., the hw never changes the mask of its own) so caching
> sounds like a good idea.

ISTR the same thing and reviewing the section gave me the warm
fuzzies it is safe to do.

My only concern is other parts of the code which touch IO SAPIC
redirection table entries need to update the cached copy as well.
Here's a list of places that touch IOSAPIC_RTE_LOW:
	set_rte()
	mask_irq()
	unmask_irq()
	iosapic_set_affinity()


BTW, enable/disable_irq() are not barriers for IRQ delivery.
disable_irq() will return before IO SAPIC knows to mask IRQs.
mask/unmask_irq doesn't force the last writel out of the CPU
and adding a readl to flush the writel wouldn't help performance.

Avoiding these calls in the performance path is the best strategy.

grant
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Thu Feb 26 21:06:04 2004

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