Messages in this thread | | | Date | Wed, 8 Mar 2000 19:14:48 -0800 (PST) | From | Linus Torvalds <> | Subject | Re: new IRQ scalability changes in 2.3.48 |
| |
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/
| |