[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] a possible chance to lost pending interrupt in latest pv tip



Just found that enable_irq/mdelay/disable_irq has been removed from fixup_irqs
in latest tip, which is the key path to migrate irqs to other cpus when current 
one
is being hot removed. The new logic tries to poll local APIC IRR for pending 
interrupt check, which is not desired to Xen. My gut-feeling is that we'll lose
pending events on local vcpu since apic_read is a dummy ops. Or do I overlook 
it?

commit 5231a68614b94f60e8f6c56bc6e3d75955b9e75e
Author: Suresh Siddha <suresh.b.siddha@xxxxxxxxx>
Date:   Mon Oct 26 14:24:36 2009 -0800

    x86: Remove local_irq_enable()/local_irq_disable() in fixup_irqs()
        
    To ensure that we handle all the pending interrupts (destined
    for this cpu that is going down) in the interrupt subsystem
    before the cpu goes offline, fixup_irqs() does:
    
        local_irq_enable();
        mdelay(1);
        local_irq_disable();
    
    Enabling interrupts is not a good thing as this cpu is already
    offline. So this patch replaces that logic with,
    
        mdelay(1);
        check APIC_IRR bits
        Retrigger the irq at the new destination if any interrupt has arrived
        via IPI.
    
    For IO-APIC level triggered interrupts, this retrigger IPI will
    appear as an edge interrupt. ack_apic_level() will detect this
    condition and IO-APIC RTE's remoteIRR is cleared using directed
    EOI(using IO-APIC EOI register) on Intel platforms and for
    others it uses the existing mask+edge logic followed by
    unmask+level.
    
    We can also remove mdelay() and then send spuriuous interrupts
    to new cpu targets for all the irqs that were handled previously
    by this cpu that is going offline. While it works, I have seen
    spurious interrupt messages (nothing wrong but still annoying
    messages during cpu offline, which can be seen during
    suspend/resume etc)

    Signed-off-by: Suresh Siddha <suresh.b.siddha@xxxxxxxxx>
    Acked-by: Gary Hade <garyhade@xxxxxxxxxx>
    Cc: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
    LKML-Reference: <20091026230002.043281924@xxxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Ingo Molnar <mingo@xxxxxxx>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.