On Mon, May 18, 2009 at 04:55:30PM +0300, Avi Kivity wrote: > Michael S. Tsirkin wrote: >> On Mon, May 18, 2009 at 03:33:20PM +0300, Avi Kivity wrote: >> >>> Michael S. Tsirkin wrote: >>> >>>>>> On the other hand, in MSI-X mask bit is mandatory, not optional >>>>>> so we'll have to support it for assigned devices at some point. >>>>>> >>>>>> If we are worried about speed of masking/unmasking MSI-X interrupts for >>>>>> assigned devices (older kernels used to mask them, recent kernels leave >>>>>> this to drivers) we will probably need to have MSI-X support in the >>>>>> kernel, and have kernel examine the mask bit before injecting the >>>>>> interrupt, just like real devices do. >>>>>> >>>>> Yes. >>>>> >>>> Actually, if we do that, we'll need to address a race where a driver >>>> has updated the mask bit in the window after we tested it >>>> and before we inject the interrupt. Not sure how to do this. >>>> >>> The driver can't tell if the interrupt came first, so it's a valid >>> race (real hardware has the same race). >>> >> >> The driver for real device can do a read followed by sync_irq to flush >> out interrupts. >> > > If it generates the interrupt after masking it in the msi-x entry, we'll > see it. If it generates the interrupt before masking it, it may or may > not receive the interrupt, even on real hardware. Yes but in the later case, real hardware must re-send the pending interrupt after it is unmasked (that's the spec). We would just lose it. -- MST -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html