From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mohit Gambhir Subject: [PATCH] x86/vpmu_intel: Fix hypervisor crash by catching wrmsr fault Date: Thu, 20 Apr 2017 13:49:42 -0400 Message-ID: <20170420174942.12913-2-mohit.gambhir@oracle.com> References: <20170420174942.12913-1-mohit.gambhir@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170420174942.12913-1-mohit.gambhir@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: jun.nakajima@intel.com, kevin.tian@intel.com, xen-devel@lists.xen.org Cc: boris.ostrovsky@oracle.com, Mohit Gambhir List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBjaGFuZ2VzIHdybXNybCgpIGNhbGxzIHRvIHdyaXRlIHRvIE1TUl9QNl9FVlRT RUwgcmVnaXN0ZXIgaW4gdGhlClZQTVUgdG8gd3Jtc3Jfc2FmZSgpLiBUaGVyZSBhcmUga25vd24g KGFuZCBwb3NzaWJseSBzb21lIHVua25vd24pIGNhc2VzIHdoZXJlCnNldHRpbmcgY2VydGFpbiBi aXRzIGluIE1TUl9QNl9FVlRTRUwgcmVnLiBjYW4gY2F1c2UgYSBHZW5lcmFsIFByb3RlY3Rpb24K ZmF1bHQgb24gc29tZSBtYWNoaW5lcy4gVW5sZXNzIHdlIGNhdGNoIHRoaXMgZmF1bHQgd2hlbiBp dCBoYXBwZW5zLCBpdCB3aWxsCnJlc3VsdCBpbiBhIGh5cGVydmlzb3IgY3Jhc2guCgpGb3IgaW5z dGFuY2UsIHNldHRpbmcgUGluIENvbnRyb2wgKFBDKSBiaXQgKDE5KSBpbiBNU1JfUDZfRVZOVFNF TCByZXN1bHRzCmluIGEgR2VuZXJhbCBQcm90ZWN0aW9uIEZhdWx0IG9uIEJyb2Fkd2VsbCBtYWNo aW5lcyBhbmQgdGh1cyBjYXVzZXMgdGhlCmh5cGVydmlzb3IgdG8gY3Jhc2guCgpUaGlzIHBhdGNo IGZpeGVzIHRoZSBhYm92ZSBtZW50aW9uZWQgY3Jhc2ggKGFuZCBvdGhlciBwb3NzaWJsZQpoeXBl cnZpc29yIGNyYXNoZXMgdGhhdCBtYXkgb2NjdXIgd2hpbGUgd3JpdGluZyBNU1JfUDZfRVZOVFNF TCByZWcpIGJ5CmNhdGNoaW5nIGFuZCByZXR1cm5pbmcgdGhlIGZhdWx0IHRvIHRoZSBndWVzdCBP Uy4KClNpZ25lZC1vZmYtYnk6IE1vaGl0IEdhbWJoaXIgPG1vaGl0LmdhbWJoaXJAb3JhY2xlLmNv bT4KLS0tCiB4ZW4vYXJjaC94ODYvY3B1L3ZwbXVfaW50ZWwuYyB8IDIwICsrKysrKysrKysrKyst LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L3ZwbXVfaW50ZWwuYyBiL3hlbi9hcmNoL3g4 Ni9jcHUvdnBtdV9pbnRlbC5jCmluZGV4IDNmMDMyMmMuLjEzODA4YjUgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9jcHUvdnBtdV9pbnRlbC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvdnBtdV9p bnRlbC5jCkBAIC0zMzgsNyArMzM4LDcgQEAgc3RhdGljIGludCBjb3JlMl92cG11X3NhdmUoc3Ry dWN0IHZjcHUgKnYsIGJvb2xfdCB0b19ndWVzdCkKICAgICByZXR1cm4gMTsKIH0KIAotc3RhdGlj IGlubGluZSB2b2lkIF9fY29yZTJfdnBtdV9sb2FkKHN0cnVjdCB2Y3B1ICp2KQorc3RhdGljIGlu bGluZSBpbnQgX19jb3JlMl92cG11X2xvYWQoc3RydWN0IHZjcHUgKnYpCiB7CiAgICAgdW5zaWdu ZWQgaW50IGksIHBtY19zdGFydDsKICAgICBzdHJ1Y3QgeGVuX3BtdV9pbnRlbF9jdHh0ICpjb3Jl Ml92cG11X2N4dCA9IHZjcHVfdnBtdSh2KS0+Y29udGV4dDsKQEAgLTM1Niw3ICszNTYsOSBAQCBz dGF0aWMgaW5saW5lIHZvaWQgX19jb3JlMl92cG11X2xvYWQoc3RydWN0IHZjcHUgKnYpCiAgICAg Zm9yICggaSA9IDA7IGkgPCBhcmNoX3BtY19jbnQ7IGkrKyApCiAgICAgewogICAgICAgICB3cm1z cmwocG1jX3N0YXJ0ICsgaSwgeGVuX3BtdV9jbnRyX3BhaXJbaV0uY291bnRlcik7Ci0gICAgICAg IHdybXNybChNU1JfUDZfRVZOVFNFTChpKSwgeGVuX3BtdV9jbnRyX3BhaXJbaV0uY29udHJvbCk7 CisgICAgICAgIGlmICggd3Jtc3Jfc2FmZShNU1JfUDZfRVZOVFNFTChpKSwgeGVuX3BtdV9jbnRy X3BhaXJbaV0uY29udHJvbCkgPT0KKyAgICAgICAgICAgICAgICAtRUZBVUxUKQorICAgICAgICAg ICAgcmV0dXJuIC1FRkFVTFQ7CiAgICAgfQogCiAgICAgd3Jtc3JsKE1TUl9DT1JFX1BFUkZfRklY RURfQ1RSX0NUUkwsIGNvcmUyX3ZwbXVfY3h0LT5maXhlZF9jdHJsKTsKQEAgLTM2OSw2ICszNzEs NyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgX19jb3JlMl92cG11X2xvYWQoc3RydWN0IHZjcHUgKnYp CiAgICAgICAgIGNvcmUyX3ZwbXVfY3h0LT5nbG9iYWxfb3ZmX2N0cmwgPSAwOwogICAgICAgICB3 cm1zcmwoTVNSX0NPUkVfUEVSRl9HTE9CQUxfQ1RSTCwgY29yZTJfdnBtdV9jeHQtPmdsb2JhbF9j dHJsKTsKICAgICB9CisgICAgcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgY29yZTJfdnBtdV92 ZXJpZnkoc3RydWN0IHZjcHUgKnYpCkBAIC00NjEsOSArNDY0LDggQEAgc3RhdGljIGludCBjb3Jl Ml92cG11X2xvYWQoc3RydWN0IHZjcHUgKnYsIGJvb2xfdCBmcm9tX2d1ZXN0KQogCiAgICAgdnBt dV9zZXQodnBtdSwgVlBNVV9DT05URVhUX0xPQURFRCk7CiAKLSAgICBfX2NvcmUyX3ZwbXVfbG9h ZCh2KTsKKyAgICByZXR1cm4gX19jb3JlMl92cG11X2xvYWQodik7CiAKLSAgICByZXR1cm4gMDsK IH0KIAogc3RhdGljIGludCBjb3JlMl92cG11X2FsbG9jX3Jlc291cmNlKHN0cnVjdCB2Y3B1ICp2 KQpAQCAtNTM4LDcgKzU0MCw4IEBAIHN0YXRpYyBpbnQgY29yZTJfdnBtdV9tc3JfY29tbW9uX2No ZWNrKHUzMiBtc3JfaW5kZXgsIGludCAqdHlwZSwgaW50ICppbmRleCkKICAgICAvKiBEbyB0aGUg bGF6eSBsb2FkIHN0YWZmLiAqLwogICAgIGlmICggIXZwbXVfaXNfc2V0KHZwbXUsIFZQTVVfQ09O VEVYVF9MT0FERUQpICkKICAgICB7Ci0gICAgICAgIF9fY29yZTJfdnBtdV9sb2FkKGN1cnJlbnQp OworICAgICAgICBpZiAoIF9fY29yZTJfdnBtdV9sb2FkKGN1cnJlbnQpICkKKyAgICAgICAgICAg IHJldHVybiAwOwogICAgICAgICB2cG11X3NldCh2cG11LCBWUE1VX0NPTlRFWFRfTE9BREVEKTsK ICAgICAgICAgaWYgKCBpc19odm1fdmNwdShjdXJyZW50KSAmJgogICAgICAgICAgICAgIGNwdV9o YXNfdm14X21zcl9iaXRtYXAgKQpAQCAtNzE5LDggKzcyMiwxMSBAQCBzdGF0aWMgaW50IGNvcmUy X3ZwbXVfZG9fd3Jtc3IodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgbXNyX2NvbnRlbnQsCiAg ICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIHR5cGUgIT0gTVNSX1RZUEVfR0xPQkFMICkKLSAg ICAgICAgd3Jtc3JsKG1zciwgbXNyX2NvbnRlbnQpOworICAgIGlmICggdHlwZSAhPSBNU1JfVFlQ RV9HTE9CQUwpCisgICAgeworICAgICAgICBpZiAoIHdybXNyX3NhZmUobXNyLCBtc3JfY29udGVu dCkgPT0gLUVGQVVMVCApCisgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKKyAgICB9CiAgICAg ZWxzZQogICAgIHsKICAgICAgICAgaWYgKCBpc19odm1fdmNwdSh2KSApCi0tIAoyLjkuMwoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=