xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] x86/vpmu_intel: Fix hypervisor crash by masking PC bit in MSR_P6_EVNTSEL
@ 2017-04-26 18:11 Mohit Gambhir
  2017-04-26 18:19 ` Andrew Cooper
  0 siblings, 1 reply; 12+ messages in thread
From: Mohit Gambhir @ 2017-04-26 18:11 UTC (permalink / raw)
  To: jun.nakajima, kevin.tian, xen-devel
  Cc: boris.ostrovsky, Mohit Gambhir, JBeulich

Setting Pin Control (PC) bit (19) in MSR_P6_EVNTSEL results in a General
Protection Fault and thus results in a hypervisor crash. This patch fixes the
crash by masking PC bit and returning an error in case any guest tries to write
to it.

Signed-off-by: Mohit Gambhir <mohit.gambhir@oracle.com>
---
v2 of this patch takes a different approach to fixing the hypervisor crash.
As stated in the commit message v2 masks PC flag control bit unlike v1 that 
used wrmsr_safe while writing to the MSR. v1 posed a complication in returning
the error to the HVM guests.

With this approach the writes to PC bits are protected for both native MSR 
writes and VMX data structure writes (for HVM guests)
---
 xen/arch/x86/cpu/vpmu_intel.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xen/arch/x86/cpu/vpmu_intel.c b/xen/arch/x86/cpu/vpmu_intel.c
index 3f0322c..6d768cb 100644
--- a/xen/arch/x86/cpu/vpmu_intel.c
+++ b/xen/arch/x86/cpu/vpmu_intel.c
@@ -76,12 +76,13 @@ static bool_t __read_mostly full_width_write;
 #define FIXED_CTR_CTRL_ANYTHREAD_MASK 0x4
 
 #define ARCH_CNTR_ENABLED   (1ULL << 22)
+#define ARCH_CNTR_PIN_CONTROL (1ULL << 19)
 
 /* Number of general-purpose and fixed performance counters */
 static unsigned int __read_mostly arch_pmc_cnt, fixed_pmc_cnt;
 
 /* Masks used for testing whether and MSR is valid */
-#define ARCH_CTRL_MASK  (~((1ull << 32) - 1) | (1ull << 21))
+#define ARCH_CTRL_MASK  (~((1ull << 32) - 1) | (1ull << 21) | ARCH_CNTR_PIN_CONTROL)
 static uint64_t __read_mostly fixed_ctrl_mask, fixed_counters_mask;
 static uint64_t __read_mostly global_ovf_ctrl_mask, global_ctrl_mask;
 
-- 
2.9.3


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2017-05-04  7:22 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-26 18:11 [PATCH v2] x86/vpmu_intel: Fix hypervisor crash by masking PC bit in MSR_P6_EVNTSEL Mohit Gambhir
2017-04-26 18:19 ` Andrew Cooper
2017-04-26 18:50   ` Mohit Gambhir
2017-04-27  7:32     ` Jan Beulich
2017-04-27 14:57       ` Boris Ostrovsky
2017-04-27 15:05         ` Jan Beulich
2017-04-27 15:18           ` Boris Ostrovsky
2017-04-28  6:43             ` Tian, Kevin
     [not found]             ` <AADFC41AFE54684AB9EE6CBC0274A5D190CBBD78@SHSMSX101.ccr.corp.intel.com>
2017-04-28  6:52               ` Tian, Kevin
2017-04-28  7:37                 ` Jan Beulich
2017-05-03 17:11                 ` Mohit Gambhir
2017-05-04  7:22                   ` Jan Beulich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).