From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gleb Natapov Subject: Re: kvm running on core1 wants guest os on core2 to execute a pre-defined program Date: Sun, 17 Feb 2013 14:06:10 +0200 Message-ID: <20130217120610.GT9817@redhat.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kvm@vger.kernel.org To: zhangzhi Return-path: Received: from mx1.redhat.com ([209.132.183.28]:48679 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756032Ab3BQMGN (ORCPT ); Sun, 17 Feb 2013 07:06:13 -0500 Content-Disposition: inline In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: 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. > 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". -- Gleb.