From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: Re: [PATCH v20 06/13] x86/VPMU: Initialize PMU for PV(H) guests Date: Mon, 20 Apr 2015 10:00:09 +0100 Message-ID: <5534DC390200007800073989@mail.emea.novell.com> References: <1428594295-2024-1-git-send-email-boris.ostrovsky@oracle.com> <1428594295-2024-7-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1428594295-2024-7-git-send-email-boris.ostrovsky@oracle.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Boris Ostrovsky Cc: kevin.tian@intel.com, suravee.suthikulpanit@amd.com, andrew.cooper3@citrix.com, tim@xen.org, dietmar.hahn@ts.fujitsu.com, xen-devel@lists.xen.org, Aravind.Gopalakrishnan@amd.com, jun.nakajima@intel.com, dgdegra@tycho.nsa.gov List-Id: xen-devel@lists.xenproject.org >>> On 09.04.15 at 17:44, wrote: > +static void pvpmu_finish(struct domain *d, xen_pmu_params_t *params) > +{ > + struct vcpu *v; > + struct vpmu_struct *vpmu; > + uint64_t mfn; > + void *xenpmu_data; > + > + if ( (params->vcpu >= d->max_vcpus) || (d->vcpu[params->vcpu] == NULL) ) > + return; > + > + v = d->vcpu[params->vcpu]; > + if ( v != current ) > + vcpu_pause(v); > + > + vpmu = vcpu_vpmu(v); > + spin_lock(&vpmu->vpmu_lock); > + > + vpmu_destroy(v); > + xenpmu_data = vpmu->xenpmu_data; > + vpmu->xenpmu_data = NULL; > + > + spin_unlock(&vpmu->vpmu_lock); > + > + if ( xenpmu_data ) > + { > + mfn = domain_page_map_to_mfn(xenpmu_data); > + ASSERT(mfn != 0); Perhaps better mfn_valid()? With this (or an explanation why that would be worse/wrong) Acked-by: Jan Beulich Jan