On Sun, Feb 17, 2013 at 11:08:19PM +0800, zhang zhi wrote: > > topic: Re: kvm running on core1 wants guest os on core2 to execute a > pre-defined program > > On Sun, Feb 17, 2013 at 02:46:28AM +0000, zhangzhi wrote: > > I have been studying some stuff about KVM and sincerely hope that > > someone is willing to reply to this mail. > > As we know, If physical NIC interrupt is received on physical CPU 0 > > which is in root mode and the hypervisor determines that this is a > > network packet targeted to the emulated NIC for a VM at the same time > > this VM is running a user program in guest mode on physical CPU 1. > > My question is: > > At this time can hypervisor running on CPU 0 *actively* interrupt VM > > and make it run the corresponding interrupt handler to handle the > > incoming network data packet? CPU 1 which is running a user program is > > not supposed to vm-exit considering the performance effect, so I can > > not use the inter-processor > > interrupt(IPI) to cause the CPU1 to leave guest mode and exit to the > hypervisor. > > > On Sun, Feb 17, 2013 at 20:06:18PM +0000, Gleb wrote: > >>With current generation of CPUs you will have to use IPI to make CPU1 > vmexit and inject interrupt on the next vmentry. Future CPU will allow to > >>inject interrupt into a running guest without vmexit. On Intel this is > called "posted interrupts". > >> > >> > Thank you for your prompt reply. According to what you've said, it seems > impossible to make CPU1 run the corresponding interrupt handler without > vm-exit. > I have an idea like this: CPU0 send a message to i/o apic after configuring > i/o apic and the message is mainly about the interrupt vector of emulated > NIC. After that, the i/o apic will go around hypervisor and send the > corresponding interrupt request directly to target CPU1 , considering that > guest os itself owns the NIC device. Is it possible? Interrupt delivered by IOAPIC will make CPU to do vmexit. It is possible to hack around it, but it is not simple. See http://researcher.ibm.com/files/il-ABELG/eli_asplos12.pdf how it was done already. Just buy HW that is capable enough to do what you want. -- Gleb. -- 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