On 27.03.2010, at 17:42, Pekka Enberg wrote: > Hi Alexander, > > Alexander Graf wrote: >>> I'm continuing my journey through the KVM API documentation and I'm now scratching my head on how interrupts, traps, and exceptions are supported by the API. I see KVM_CREATE_IRQCHIP and KVM_IRQ_LINE but I'm unable to work out how the host is notified of such events. For example, if the guest does >>> >>> int $0x10 >> IRQs here mean hardware interrupts. They usually are pushed from host -> guest. So all you need is a way to tell the guest "you got an interrupt". Your userspace is the one giving interrupts, so there's no need to an exit. >> The "int $0x10" instruction describes a software interrupt. These are handled 100% in guest space. >>> is there some KVM_EXIT "exit reason" like we have for IO? Is there some other mechanism for that? As I haven't yet set up anything related to IRQs I can see the host just deadlock on user interrupts. >> I don't think I quite understand? If there's anything running inside guest context the host shouldn't be affected at all. Host interrupts always intercept guest execution. > > OK, so Avi asked me not to look at KVM code or qemu code if I don't understand something in Documentation/kvm/api.txt and instead, complain about it. That might also partly explain why I am so confused. Oh I see :-). That's an eager goal. > I'm not talking in host -> guest interrupts but interrupts happening in the _guest_. Now if I understand your explanation correctly, host is not involved in interrupt processing but instead I just need to set up IDTs properly in the guest? That makes sense and explains why guest interrupts are not mentioned in the KVM API documentation at all. ;-) Heh, yep. SW interrupts run 100% in guest context. Interrupt handling (IDT interpretation etc.) also happens in guest context. Alex-- 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