[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.018 / U:44.408 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site