[lkml]   [2010]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH v3 2/4] genirq: Inform handler about line sharing state
    Am 16.12.2010 14:13, Thomas Gleixner wrote:
    > On Mon, 13 Dec 2010, Jan Kiszka wrote:
    >> + if (old_action && (old_action->flags & IRQF_ADAPTIVE) &&
    >> + !(desc->irq_data.drv_status & IRQS_SHARED)) {
    >> + /*
    >> + * Signal the old handler that is has to switch to shareable
    >> + * handling mode. Disable the line to avoid any conflict with
    >> + * a real IRQ.
    >> + */
    >> + disable_irq(irq);
    > This is weird, really. I thought you wanted to avoid waiting for the
    > threaded handler to finish if it's on the fly. So this should be
    > disable_irq_nosync() or did you change your mind ?

    No, I did not. I wanted to avoid that we set MAKE_SHAREABLE while there
    might be another IRQ in flight. The handler that is called due to a real
    IRQ might misinterpret MAKE_SHAREABLE as "there is no real event" and
    perform the wrong steps (at least the current implementation for KVM would).

    However, I will rebase my patch over your series now and try to re-think
    this. The question is what could go wrong if we do not guarantee that
    MAKE_SHAREABLE and ordinary IRQ will always be distinguishable. If there
    is really nothing, specifically for the KVM scenario, we could even drop
    the disable/enable_irq. That would be also be nicer when thinking about
    potential delays of the already registered handler during this
    transitional phase.


    [unhandled content-type:application/pgp-signature]
     \ /
      Last update: 2010-12-16 21:29    [W:0.031 / U:37.892 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site