[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] hvm/vpt: Check that an irq is not blocked before waking the vcpu
I can't think of a way this race could be a problem. Even if the vcpu in question were to unmask right after the check, it would still call pt_update_irq() on the way out to the vmexit (just for good measure), which would catch the IRQ just as it should. Conversely, if the vcpu were to mask right after the check, there should be enough delay between the mask and executing a HLT that the kick() wouldn't have any significant effect. Even if it did, this patch would reduce the false wake-ups from "every time the timer fires when masked" to "only when a very specific race happens". But the timer code is complicated enough that I'd like some corroboration with someone who knows it better... -George On Mon, Mar 9, 2009 at 12:01 PM, Keir Fraser <keir.fraser@xxxxxxxxxxxxx> wrote: > On 09/03/2009 11:45, "George Dunlap" <George.Dunlap@xxxxxxxxxxxxx> wrote: > >> Currently, when a timer fires for a vpt interrupt, the interrupt >> handler calls vcpu_kick() without checking to see if the IRQ is >> blocked. This causes the vcpu to wake up out of a halt when it >> shouldn't. >> >> Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx> > > Only one question: could this race an unmask operation? Before this patch, > pt_irq_masked() is only executed for the local vcpu, so such races may not > have been considered. > > -- Keir > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |