From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: [PATCH v6 03/19] x86/VPMU: Minor VPMU cleanup Date: Mon, 19 May 2014 11:35:23 -0400 Message-ID: <537A24BB.1030607@oracle.com> References: <1399996413-1998-1-git-send-email-boris.ostrovsky@oracle.com> <1399996413-1998-4-git-send-email-boris.ostrovsky@oracle.com> <537A30BE0200007800013B96@mail.emea.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <537A30BE0200007800013B96@mail.emea.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich Cc: kevin.tian@intel.com, keir@xen.org, suravee.suthikulpanit@amd.com, andrew.cooper3@citrix.com, donald.d.dugger@intel.com, xen-devel@lists.xen.org, dietmar.hahn@ts.fujitsu.com, jun.nakajima@intel.com List-Id: xen-devel@lists.xenproject.org On 05/19/2014 10:26 AM, Jan Beulich wrote: >>>> On 13.05.14 at 17:53, wrote: >> Update macros that modify VPMU flags to allow changing multiple bits at once. >> >> Make sure that we only touch MSR bitmap on HVM guests (both VMX and SVM). >> This is needed by subsequent PMU patches. > This part is at least questionable - why would these bitmaps not > similarly be used by PVH? And if so, this second change is kind of > a policy one, while the first change is a purely mechanical one. I.e. At this patch PVH VPMU won't work at all, bitmaps or not. It is enabled in patch 18 and there I replace is_hvm_domain() with has_hvm_container_domain(). I didn't want to do this here so that PVH-related changes are more explicit in 18. > I don't think they fit well together into a single patch. I can break this into two parts. > >> --- a/xen/arch/x86/hvm/vmx/vpmu_core2.c >> +++ b/xen/arch/x86/hvm/vmx/vpmu_core2.c >> @@ -326,16 +326,14 @@ static int core2_vpmu_save(struct vcpu *v) >> { >> struct vpmu_struct *vpmu = vcpu_vpmu(v); >> >> - if ( !vpmu_is_set(vpmu, VPMU_CONTEXT_SAVE) ) >> - return 0; >> - >> - if ( !vpmu_is_set(vpmu, VPMU_CONTEXT_LOADED) ) >> + if ( !vpmu_is_set_all(vpmu, VPMU_CONTEXT_SAVE | VPMU_CONTEXT_LOADED) ) > Is this really a good name? How about vpmu_are_all_set() or > vpmu_all_set()? vpmu_are_all_set() is better. -boris vpmu_are_all_set