From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Tosatti Subject: Re: [PATCH 08/31] nVMX: Fix local_vcpus_link handling Date: Tue, 17 May 2011 15:43:36 -0300 Message-ID: <20110517184336.GA10394@amt.cnet> References: <1305575004-nyh@il.ibm.com> <201105161948.p4GJm1as001742@rice.haifa.ibm.com> <20110517131918.GA3809@amt.cnet> <4DD27998.1040105@redhat.com> <20110517143532.GA2490@fermat.math.technion.ac.il> <4DD2902C.9050403@redhat.com> <20110517181132.GA16262@fermat.math.technion.ac.il> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Avi Kivity , kvm@vger.kernel.org, gleb@redhat.com To: "Nadav Har'El" Return-path: Received: from mx1.redhat.com ([209.132.183.28]:43923 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756125Ab1EQSns (ORCPT ); Tue, 17 May 2011 14:43:48 -0400 Content-Disposition: inline In-Reply-To: <20110517181132.GA16262@fermat.math.technion.ac.il> Sender: kvm-owner@vger.kernel.org List-ID: On Tue, May 17, 2011 at 09:11:32PM +0300, Nadav Har'El wrote: > On Tue, May 17, 2011, Avi Kivity wrote about "Re: [PATCH 08/31] nVMX: Fix local_vcpus_link handling": > > >VMCSs. If we had only a list of VMCSs, how can we mark the vcpus as being > > >not > > >currently loaded (cpu=-1)? > > > > > > > ->launched and ->cpu simply move into struct vmcs. > > As I explained in the sister thread (this discussion is becoming a tree ;-)) > this is what I planned to do, until it dawned on me that I can't, because "cpu" > isn't part of vmx (where the vmcs and launched sit in the standard KVM), but > rather part of vcpu... When I gave up trying to "solve" these interdependencies > and avoiding modifying half of KVM, I came up with the current solution. > > Maybe I'm missing something - I'd be happy if we do find a solution that > simplifies this code. vcpu->cpu remains there. There is a new ->cpu field on struct vmcs, just as saved_vmcs has in the current patches, to note the cpu which the VMCS was last loaded. As mentioned there is no need to set "vcpu->cpu = -1" in __vcpu_clear, the IPI handler, that can be done in vcpu_clear.