From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 1/7] x86/hvm: Correctly identify implicit supervisor accesses Date: Mon, 27 Feb 2017 14:03:12 +0000 Message-ID: <1488204198-23948-2-git-send-email-andrew.cooper3@citrix.com> References: <1488204198-23948-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1488204198-23948-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: George Dunlap , Andrew Cooper , Paul Durrant , Tim Deegan , Jan Beulich List-Id: xen-devel@lists.xenproject.org QWxsIGFjdGlvbnMgd2hpY2ggcmVmZXIgdG8gdGhlIGFjdGl2ZSBsZHQvZ2R0L2lkdCBvciB0YXNr IHJlZ2lzdGVyCihlLmcuIGxvYWRpbmcgYSBuZXcgc2VnbWVudCBzZWxlY3RvcikgYXJlIGtub3du IGFzIGltcGxpY2l0IHN1cGVydmlzb3IKYWNjZXNzZXMsIGV2ZW4gd2hlbiB0aGUgYWNjZXNzIG9y aWdpbmF0ZXMgZnJvbSB1c2VyIGNvZGUuCgpUaGUgZGlzdGluY3Rpb24gaXMgbmVjZXNzYXJ5IGlu IHRoZSBwYWdld2FsayB3aGVuIFNNQVAgaXMgZW5hYmxlZC4gIFJlZmVyIHRvCkludGVsIFNETSBW b2wgMyAiQWNjZXNzIFJpZ2h0cyIgZm9yIHRoZSBleGFjdCBkZXRhaWxzLgoKSW50cm9kdWNlIGEg bmV3IHBhZ2V3YWxrIGlucHV0LCBhbmQgbWFrZSB1c2Ugb2YgdGhlIG5ldyBzeXN0ZW0gc2VnbWVu dApyZWZlcmVuY2VzIGluIGh2bWVtdWxfe3JlYWQsd3JpdGV9KCkuICBXaGlsZSBtb2RpZnlpbmcg dGhvc2UgYXJlYXMsIG1vdmUgdGhlCmNhbGN1bGF0aW9uIG9mIHRoZSBhcHByb3ByaWF0ZSBwYWdl d2FsayBpbnB1dCBiZWZvcmUgaXRzIGZpcnN0IHVzZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpC ZXVsaWNoQHN1c2UuY29tPgpDQzogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNv bT4KQ0M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KQ0M6IFRp bSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jICAg ICAgfCAxOCArKysrKysrKysrLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9ndWVzdF93YWxrLmMg ICAgfCAgNCArKysrCiB4ZW4vaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oIHwgIDEgKwogMyBm aWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jIGIveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRl LmMKaW5kZXggZjI0ZDI4OS4uOWIzMmJjYSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9l bXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKQEAgLTc4Myw2ICs3ODMs MTEgQEAgc3RhdGljIGludCBfX2h2bWVtdWxfcmVhZCgKICAgICBzdHJ1Y3QgaHZtX3ZjcHVfaW8g KnZpbyA9ICZjdXJyLT5hcmNoLmh2bV92Y3B1Lmh2bV9pbzsKICAgICBpbnQgcmM7CiAKKyAgICBp ZiAoIGlzX3g4Nl9zeXN0ZW1fc2VnbWVudChzZWcpICkKKyAgICAgICAgcGZlYyB8PSBQRkVDX2lt cGxpY2l0OworICAgIGVsc2UgaWYgKCBodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10u YXR0ci5maWVsZHMuZHBsID09IDMgKQorICAgICAgICBwZmVjIHw9IFBGRUNfdXNlcl9tb2RlOwor CiAgICAgcmMgPSBodm1lbXVsX3ZpcnR1YWxfdG9fbGluZWFyKAogICAgICAgICBzZWcsIG9mZnNl dCwgYnl0ZXMsICZyZXBzLCBhY2Nlc3NfdHlwZSwgaHZtZW11bF9jdHh0LCAmYWRkcik7CiAgICAg aWYgKCByYyAhPSBYODZFTVVMX09LQVkgfHwgIWJ5dGVzICkKQEAgLTc5MywxMCArNzk4LDYgQEAg c3RhdGljIGludCBfX2h2bWVtdWxfcmVhZCgKICAgICAgICAgICh2aW8tPm1taW9fZ2xhID09IChh ZGRyICYgUEFHRV9NQVNLKSkgKQogICAgICAgICByZXR1cm4gaHZtZW11bF9saW5lYXJfbW1pb19y ZWFkKGFkZHIsIGJ5dGVzLCBwX2RhdGEsIHBmZWMsIGh2bWVtdWxfY3R4dCwgMSk7CiAKLSAgICBp ZiAoIChzZWcgIT0geDg2X3NlZ19ub25lKSAmJgotICAgICAgICAgKGh2bWVtdWxfY3R4dC0+c2Vn X3JlZ1t4ODZfc2VnX3NzXS5hdHRyLmZpZWxkcy5kcGwgPT0gMykgKQotICAgICAgICBwZmVjIHw9 IFBGRUNfdXNlcl9tb2RlOwotCiAgICAgcmMgPSAoKGFjY2Vzc190eXBlID09IGh2bV9hY2Nlc3Nf aW5zbl9mZXRjaCkgPwogICAgICAgICAgIGh2bV9mZXRjaF9mcm9tX2d1ZXN0X2xpbmVhcihwX2Rh dGEsIGFkZHIsIGJ5dGVzLCBwZmVjLCAmcGZpbmZvKSA6CiAgICAgICAgICAgaHZtX2NvcHlfZnJv bV9ndWVzdF9saW5lYXIocF9kYXRhLCBhZGRyLCBieXRlcywgcGZlYywgJnBmaW5mbykpOwpAQCAt ODkzLDYgKzg5NCwxMSBAQCBzdGF0aWMgaW50IGh2bWVtdWxfd3JpdGUoCiAgICAgc3RydWN0IGh2 bV92Y3B1X2lvICp2aW8gPSAmY3Vyci0+YXJjaC5odm1fdmNwdS5odm1faW87CiAgICAgaW50IHJj OwogCisgICAgaWYgKCBpc194ODZfc3lzdGVtX3NlZ21lbnQoc2VnKSApCisgICAgICAgIHBmZWMg fD0gUEZFQ19pbXBsaWNpdDsKKyAgICBlbHNlIGlmICggaHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4 Nl9zZWdfc3NdLmF0dHIuZmllbGRzLmRwbCA9PSAzICkKKyAgICAgICAgcGZlYyB8PSBQRkVDX3Vz ZXJfbW9kZTsKKwogICAgIHJjID0gaHZtZW11bF92aXJ0dWFsX3RvX2xpbmVhcigKICAgICAgICAg c2VnLCBvZmZzZXQsIGJ5dGVzLCAmcmVwcywgaHZtX2FjY2Vzc193cml0ZSwgaHZtZW11bF9jdHh0 LCAmYWRkcik7CiAgICAgaWYgKCByYyAhPSBYODZFTVVMX09LQVkgfHwgIWJ5dGVzICkKQEAgLTkw MiwxMCArOTA4LDYgQEAgc3RhdGljIGludCBodm1lbXVsX3dyaXRlKAogICAgICAgICAgKHZpby0+ bW1pb19nbGEgPT0gKGFkZHIgJiBQQUdFX01BU0spKSApCiAgICAgICAgIHJldHVybiBodm1lbXVs X2xpbmVhcl9tbWlvX3dyaXRlKGFkZHIsIGJ5dGVzLCBwX2RhdGEsIHBmZWMsIGh2bWVtdWxfY3R4 dCwgMSk7CiAKLSAgICBpZiAoIChzZWcgIT0geDg2X3NlZ19ub25lKSAmJgotICAgICAgICAgKGh2 bWVtdWxfY3R4dC0+c2VnX3JlZ1t4ODZfc2VnX3NzXS5hdHRyLmZpZWxkcy5kcGwgPT0gMykgKQot ICAgICAgICBwZmVjIHw9IFBGRUNfdXNlcl9tb2RlOwotCiAgICAgcmMgPSBodm1fY29weV90b19n dWVzdF9saW5lYXIoYWRkciwgcF9kYXRhLCBieXRlcywgcGZlYywgJnBmaW5mbyk7CiAKICAgICBz d2l0Y2ggKCByYyApCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vZ3Vlc3Rfd2Fsay5jIGIv eGVuL2FyY2gveDg2L21tL2d1ZXN0X3dhbGsuYwppbmRleCBmYWFmNzBjLi40ZjhkMGUzIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vZ3Vlc3Rfd2Fsay5jCisrKyBiL3hlbi9hcmNoL3g4Ni9t bS9ndWVzdF93YWxrLmMKQEAgLTE2MSw2ICsxNjEsMTAgQEAgZ3Vlc3Rfd2Fsa190YWJsZXMoc3Ry dWN0IHZjcHUgKnYsIHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCiAgICAgYm9vbF90IHBzZTFHID0g MCwgcHNlMk0gPSAwOwogICAgIHAybV9xdWVyeV90IHF0ID0gUDJNX0FMTE9DIHwgUDJNX1VOU0hB UkU7CiAKKyAgICAvKiBPbmx5IGltcGxpY2l0IHN1cGVydmlzb3IgZGF0YSBhY2Nlc3NlcyBleGlz dC4gKi8KKyAgICBBU1NFUlQoIShwZmVjICYgUEZFQ19pbXBsaWNpdCkgfHwKKyAgICAgICAgICAg IShwZmVjICYgKFBGRUNfaW5zbl9mZXRjaHxQRkVDX3VzZXJfbW9kZSkpKTsKKwogICAgIHBlcmZj X2luY3IoZ3Vlc3Rfd2Fsayk7CiAgICAgbWVtc2V0KGd3LCAwLCBzaXplb2YoKmd3KSk7CiAgICAg Z3ctPnZhID0gdmE7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5o IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaAppbmRleCBkZGE4YjgzLi5kM2JhOGVh IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oCisrKyBiL3hlbi9p bmNsdWRlL2FzbS14ODYvcHJvY2Vzc29yLmgKQEAgLTc2LDYgKzc2LDcgQEAKIC8qIEludGVybmFs bHkgdXNlZCBvbmx5IGZsYWdzLiAqLwogI2RlZmluZSBQRkVDX3BhZ2VfcGFnZWQgICAgICgxVTw8 MTYpCiAjZGVmaW5lIFBGRUNfcGFnZV9zaGFyZWQgICAgKDFVPDwxNykKKyNkZWZpbmUgUEZFQ19p bXBsaWNpdCAgICAgICAoMVU8PDE4KSAvKiBQYWdld2FsayBpbnB1dCBmb3IgbGR0L2dkdC9pZHQv dHIgYWNjZXNzZXMuICovCiAKIC8qIE90aGVyIGV4Y2VwdGlvbiBlcnJvciBjb2RlIHZhbHVlcy4g Ki8KICNkZWZpbmUgWDg2X1hFQ19FWFQgICAgICAgICAoX0FDKDEsVSkgPDwgMCkKLS0gCjIuMS40 CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==