From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH v3 2/3] x86/VPMU: Disable VPMU when NMI watchdog is on Date: Fri, 30 Jan 2015 17:37:05 +0000 Message-ID: <54CBC141.8060609@citrix.com> References: <1422638157-1919-1-git-send-email-boris.ostrovsky@oracle.com> <1422638157-1919-3-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1YHFVI-00046B-8k for xen-devel@lists.xenproject.org; Fri, 30 Jan 2015 17:37:12 +0000 In-Reply-To: <1422638157-1919-3-git-send-email-boris.ostrovsky@oracle.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: Boris Ostrovsky , JBeulich@suse.com Cc: xen-devel@lists.xenproject.org, kevin.tian@intel.com, dietmar.hahn@ts.fujitsu.com List-Id: xen-devel@lists.xenproject.org On 30/01/15 17:15, Boris Ostrovsky wrote: > NMI watchdog sets APIC_LVTPC register to generate an NMI when PMU counter > overflow occurs. This may be overwritten by VPMU code later, effectively > turning off the watchdog. > > We should disable VPMU when NMI watchdog is running. > > Signed-off-by: Boris Ostrovsky Reviewed-by: Andrew Cooper > --- > docs/misc/xen-command-line.markdown | 2 ++ > xen/arch/x86/hvm/vpmu.c | 13 +++++++++++++ > 2 files changed, 15 insertions(+) > > diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown > index 2274e74..bc316be 100644 > --- a/docs/misc/xen-command-line.markdown > +++ b/docs/misc/xen-command-line.markdown > @@ -1346,6 +1346,8 @@ wrong behaviour (see handle\_pmc\_quirk()). > If 'vpmu=bts' is specified the virtualisation of the Branch Trace Store (BTS) > feature is switched on on Intel processors supporting this feature. > > +Note that if **watchdog** option is also specified vpmu will be turned off. > + > *Warning:* > As the BTS virtualisation is not 100% safe and because of the nehalem quirk > don't use the vpmu flag on production systems with Intel cpus! > diff --git a/xen/arch/x86/hvm/vpmu.c b/xen/arch/x86/hvm/vpmu.c > index 63b2158..b2e8e65 100644 > --- a/xen/arch/x86/hvm/vpmu.c > +++ b/xen/arch/x86/hvm/vpmu.c > @@ -24,6 +24,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -288,3 +289,15 @@ void vpmu_dump(struct vcpu *v) > vpmu->arch_vpmu_ops->arch_vpmu_dump(v); > } > > +static int __init vpmu_init(void) > +{ > + /* NMI watchdog uses LVTPC and HW counter */ > + if ( opt_watchdog && opt_vpmu_enabled ) > + { > + printk(XENLOG_WARNING "NMI watchdog is enabled. Turning VPMU off.\n"); > + opt_vpmu_enabled = 0; > + } > + > + return 0; > +} > +__initcall(vpmu_init);