Re: hot cache line due to note_interrupt()

From: Ravikiran G Thirumalai
Date: Tue Nov 11 2003 - 03:24:08 EST


On Mon, Nov 10, 2003 at 03:58:44PM -0600, Jack Steiner wrote:
>
> I dont know the background on note_interrupt() in arch/ia64/kernel/irq.c,
> but I had to disable the function on our large systems (IA64).
>
> The function updates a counter in the irq_desc_t table. An entry in this table
> is shared by all cpus that take a specific interrupt #. For most interrupt #'s,
> this is a problem but it is prohibitive for the timer tick on big systems.
>
> Updating the counter causes a cache line to be bounced between
> cpus at a rate of at least HZ*active_cpus. (The number of bus transactions

The answer to this is probably alloc_percpu for the counters.
right now this might not possible because irq_desc_t table might be used very
early, and alloc_percpu uses slab underneath. alloc_percpu will have to be
made to work early enough for this....

Thanks,
Kiran

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/