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.

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. ;-)

                        Pekka
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to