From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH v3 2/3] KVM: send IPI to vcpu only when it's in guest mode Date: Wed, 12 Jan 2011 11:59:47 +0200 Message-ID: <4D2D7B93.40109@redhat.com> References: <4D2D5AA6.9080804@cn.fujitsu.com> <4D2D5AEF.1070006@cn.fujitsu.com> <20110112095428.GA15835@fermat.math.technion.ac.il> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Xiao Guangrong , Marcelo Tosatti , LKML , KVM To: "Nadav Har'El" Return-path: In-Reply-To: <20110112095428.GA15835@fermat.math.technion.ac.il> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 01/12/2011 11:54 AM, Nadav Har'El wrote: > On Wed, Jan 12, 2011, Xiao Guangrong wrote about "[PATCH v3 2/3] KVM: send IPI to vcpu only when it's in guest mode": > > We can interrupt the vcpu only when it's running in guest mode > > to reduce IPI > > Hi, > > I am afraid there's a risk of confusion between the new > > vcpu->mode = IN_GUEST_MODE; > > and the existing > > is_guest_mode() (i.e., vcpu->arch.hflags& HF_GUEST_MASK) > > The latter says that the virtual cpu is in guest mode (i.e., the guest used > VMLAUNCH and is runnning a nested guest), while the former says that the > physical CPU that this vcpu is currently being run on, is in guest mode - or > in other words, this vcpu is currently running. > > I'm not sure what is the best way to resolve this potential for confusion. > Maybe on of them is better renamed (e.g., instead of vcpu->mode = IN_GUEST_MODE > have something like vcpu->running = NOW_RUNNING). Or maybe some good comments > need to to be written to explain the situation. > > Actually, I just noticed that there's already a vcpu->guest_mode which you > are apparently replacing, so the potential for confusion is already in the > current code... I.e., in the current code, is_guest_mode(vcpu) does NOT check > vcpu->guest_mode... > Right. One is from the host's point of view, the other is from the guest's point of view. I'll rename is_guest_mode() to is_nested_guest(). -- error compiling committee.c: too many arguments to function