|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 2/3] x86/VPMU: Disable VPMU when NMI watchdog is on
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 <boris.ostrovsky@xxxxxxxxxx>
Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> ---
> 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 <asm/regs.h>
> #include <asm/types.h>
> #include <asm/msr.h>
> +#include <asm/nmi.h>
> #include <asm/hvm/support.h>
> #include <asm/hvm/vmx/vmx.h>
> #include <asm/hvm/vmx/vmcs.h>
> @@ -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);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |