[lkml]   [2000]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: new IRQ scalability changes in 2.3.48

To spell it out:

The new changes offer some supposed increase in parallelism and reduced
cache ping if there are multiple irq controllers.

If an irq controller does not have atomic maskandack then it needs spinlocks
so under the new system there are 2 spinlocks needed in place of 1.

The io-apic does not have atomic mask-and-ack so it needs a spinlock. But
the new system evades this problem by postponing the ack until after the
driver irq handler runs.

desc->ack() /* on a level triggered PCI irq this is now null*/
call driver
desc->end() /* on a level triggered PCI irq this is now ACK */

The result is that we don't need the extra spinlock, but we freeze
the IOAPIC until the ack. I don't know whether this freezes all
irqs or "only" irqs that are lower hardware priority, but it's a major
change in irq semantics and one with interesting performance implications.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:56    [W:0.214 / U:0.676 seconds]
©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site