From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: [PATCH v12 for-xen-4.5 11/20] x86/VPMU: Interface for setting PMU mode and flags Date: Fri, 26 Sep 2014 17:24:57 -0400 Message-ID: <5425D9A9.9000904@oracle.com> References: <1411673336-32736-1-git-send-email-boris.ostrovsky@oracle.com> <1411673336-32736-12-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: "Tian, Kevin" , "jbeulich@suse.com" , "suravee.suthikulpanit@amd.com" , "Aravind.Gopalakrishnan@amd.com" , "dietmar.hahn@ts.fujitsu.com" , "dgdegra@tycho.nsa.gov" Cc: "andrew.cooper3@citrix.com" , "xen-devel@lists.xen.org" , "keir@xen.org" , "Nakajima, Jun" , "tim@xen.org" List-Id: xen-devel@lists.xenproject.org On 09/26/2014 05:04 PM, Tian, Kevin wrote: >> From: Boris Ostrovsky [mailto:boris.ostrovsky@oracle.com] >> Sent: Thursday, September 25, 2014 12:29 PM >> >> Add runtime interface for setting PMU mode and flags. Three main modes are >> provided: >> * XENPMU_MODE_OFF: PMU is not virtualized >> * XENPMU_MODE_SELF: Guests can access PMU MSRs and receive PMU >> interrupts. >> * XENPMU_MODE_HV: Same as XENPMU_MODE_SELF for non-proviledged >> guests, dom0 >> can profile itself and the hypervisor. >> >> Note that PMU modes are different from what can be provided at Xen's boot >> line >> with 'vpmu' argument. An 'off' (or '0') value is equivalent to >> XENPMU_MODE_OFF. >> Any other value, on the other hand, will cause VPMU mode to be set to >> XENPMU_MODE_SELF during boot. >> >> For feature flags only Intel's BTS is currently supported. >> >> Mode and flags are set via HYPERVISOR_xenpmu_op hypercall. >> >> Signed-off-by: Boris Ostrovsky >> Reviewed-by: Konrad Rzeszutek Wilk > I'll need focused time to review this one and several latter big patches, which > can't be afforded this week. Will do that next week. Thank you. > > One immediate comment though. Looks below comment is not fixed > which you said is for XENPMU_MODE_ALL: XENPMU_MODE_ALL is defined later, in patch 18, and the 'if' below is updated there. (and I think when I said earlier that the comment was incorrect I was wrong. I re-read it and I don't see anything wrong with it. I may have been thinking about the 'if' statement not being correct, not realizing that it is updated by the later patch). -boris > >> + if ( vpmu_mode == XENPMU_MODE_OFF ) >> + { >> + /* >> + * Make sure all (non-dom0) VCPUs have unloaded their >> VPMUs. This >> + * can be achieved by having all physical processors go >> through >> + * context_switch(). >> + */ >> + ret = vpmu_force_context_switch(); >> + if ( ret ) >> + vpmu_mode = current_mode; >> + } >> + >> + spin_unlock(&xenpmu_mode_lock); >> + break; >> + } >> + > Thanks > Kevin