Re: new IRQ scalability changes in 2.3.48

From: Linus Torvalds (torvalds@transmeta.com)
Date: Wed Mar 08 2000 - 22:14:48 EST


On Thu, 9 Mar 2000, Andrea Arcangeli wrote:
>
> >Each cpu has its own interrupt mask register, so the actual interrupt
> >handler needn't worry about communicating with other processors.
>
> Yes, but we definitely need the per irq-desc locking to avoid to run the
> irq handler on two CPUs at the same time.

Indeed. There's probably no way to avoid that lock, so one lock is a
minimum requirement. That's true even with interrupt controllers that
don't ever distribute the irq's the way you describe: we need _some_
synchronization with things like "disable_irq()", "request_irq()" and
"release_irq()", and a per-irqdescriptor spinlock is just the obvious
way to do it.

You could probably play games here and use lockless data structures and
other magic, but the complexity would probably obviate the gain.

                        Linus

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



This archive was generated by hypermail 2b29 : Wed Mar 15 2000 - 21:00:15 EST