On Mon, 15 Oct 2012 15:38:50 -0400, Christoffer Dall <c.dall@xxxxxxxxxxxxxxxxxxxxxx> wrote: > On Mon, Oct 15, 2012 at 1:47 PM, Marc Zyngier <marc.zyngier@xxxxxxx> wrote: >> On 15/10/12 18:39, Christoffer Dall wrote: >>> On Mon, Oct 15, 2012 at 11:42 AM, Marc Zyngier <marc.zyngier@xxxxxxx> >>> wrote: >>>> Fix a number of problems in the vgic code: >>>> - Make sure edge interrupts are getting cleared as soon as they >>>> are on the CPU interface >>>> - Make sure level interrupts get cleared after they get EOId. >>>> Also mark it pending again if the irq_state is still high. >>>> >>> >>> interesting. >>> >>> did this bug manifest in some incorrect behavior? >> >> Indeed, while driving KVM with a non-QEMU userspace, using only >> edge-triggered interrupts - QEMU never injects any. >> > and the problem with level-triggered? was that was we discussed in San > Diego or is it something more subtle? Slightly more subtle, it did trigger once the edge bug was fixed. The clearing of in-flight interrupts was a bit sloppy, to say the least, and I have the feeling it worked by fluke. The re-injection is also something that I've seen - the device injecting interrupts back-to-back, and the GIC emulation failing to pick it up again immediately. I'm thinking of refactoring the code again, mostly to split between the two possible flows - they are now quite distinct, and keeping them together feels a bit messy and fragile. M. -- Fast, cheap, reliable. Pick two. _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm