[lkml]   [2010]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 0/8] tip related: radix tree for spareseirq and logical flat clean up
    "H. Peter Anvin" <> writes:

    > On 02/12/2010 07:44 PM, Eric W. Biederman wrote:
    >> Thanks for keeping this work alive.
    > Indeed. I am hoping to put this in tip tomorrow or so.
    >> I just skimmed through do_IRQ and I happened to notice that
    >> we have an unnecessary inefficiency that using a radix tree for
    >> irq_to_desc will magnify.
    >> handle_irq should take an struct irq_desc * instead of a unsigned int irq.
    >> and the per cpu vector_irq array should become a per cpu vector_desc array.
    >> As soon as irq_to_desc is more than &irq_desc[irq] this saves us work
    >> and cache line misses at the cost of a simple code cleanup.
    > Good catch. I haven't looked through the details yet, but I presume
    > this can be done on top of this changeset?

    Codewise the changes should be completely independent.

    Probably the trickiest bit is that drivers/xen/events.c calls handle_irq
    and makes handle_irq on ia64 a wrapper for __do_IRQ.

    Jeremy is there any good reason why drivers/xen/events.c does not just do:

    desc = irq_to_desc(irq);
    if (desc)
    generic_handle_irq_desc(irq, desc);

    And instead introduces a weird one-off xen specific multi-arch function?


     \ /
      Last update: 2010-02-13 05:19    [W:0.020 / U:13.580 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site