From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 18/24] x86/shadow: Avoid raising faults behind the emulators back Date: Wed, 30 Nov 2016 13:50:35 +0000 Message-ID: <1480513841-7565-19-git-send-email-andrew.cooper3@citrix.com> References: <1480513841-7565-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: <1480513841-7565-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: Andrew Cooper , Tim Deegan , Jan Beulich List-Id: xen-devel@lists.xenproject.org VXNlIHg4Nl9lbXVsX3tod19leGNlcHRpb24scGFnZWZhdWx0fSgpIHJhdGhlciB0aGFuCntwdixo dm19X2luamVjdF9wYWdlX2ZhdWx0KCkgYW5kIGh2bV9pbmplY3RfaHdfZXhjZXB0aW9uKCkgdG8g Y2F1c2UgcmFpc2VkCmZhdWx0cyB0byBiZSBrbm93biB0byB0aGUgZW11bGF0b3IuICBUaGlzIHJl cXVpcmVzIGFsdGVyaW5nIHRoZSBjYWxsZXJzIG9mCng4Nl9lbXVsYXRlKCkgdG8gcHJvcGVybHkg cmUtaW5qZWN0IHRoZSBldmVudC4KCldoaWxlIGZpeGluZyB0aGlzLCBmaXggdGhlIHNpbmdsZXN0 ZXAgYmVoYXZpb3VyLiAgUHJldmlvdXNseSwgYW4gb3RoZXJ3aXNlCnN1Y2Nlc3NmdWwgZW11bGF0 aW9uIHdvdWxkIGZhaWwgaWYgc2luZ2xlc3RlcHBpbmcgd2FzIGFjdGl2ZSwgYXMgdGhlIGVtdWxh dG9yCmNvdWxkbid0IHJhaXNlICNEQi4gIFRoaXMgaXMgdW5yZWFzb25hYmxlIGZyb20gdGhlIHBv aW50IG9mIHZpZXcgb2YgdGhlIGd1ZXN0LgoKV2UgdGhlcmVmb3JlIHRvbGVyYXRlICNQRi8jR1Av U1MgYW5kICNEQiBiZWluZyByYWlzZWQgYnkgdGhlIGVtdWxhdG9yLCBidXQKcmVqZWN0IGFueXRo aW5nIGVsc2UgYXMgdW5leHBlY3RlZC4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1 c2UuY29tPgpDQzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+Cgp2MzoKICogU3BsaXQgb3V0ICNE QiBoYW5kbGluZyB0byBhbiBlYXJsaWVyIHBhcnQgb2YgdGhlIHNlcmllcwogKiBEb24ndCBpbmpl Y3QgI0dQIGZhdWx0cyBmb3IgdW5leHBlY3RlZCBldmVudHMsIGJ1dCBkbyByZWVudGVyIHRoZSBn dWVzdC4KdjI6CiAqIE5ldwotLS0KIHhlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMgfCAx MyArKysrKystLS0tLS0tCiB4ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMgIHwgMzkgKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDM0 IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9tbS9zaGFkb3cvY29tbW9uLmMgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCmlu ZGV4IGYwNzgwM2IuLmU1MDljYzEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cv Y29tbW9uLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYwpAQCAtMTYyLDgg KzE2Miw5IEBAIHN0YXRpYyBpbnQgaHZtX3RyYW5zbGF0ZV9saW5lYXJfYWRkcigKIAogICAgIGlm ICggIW9rYXkgKQogICAgIHsKLSAgICAgICAgaHZtX2luamVjdF9od19leGNlcHRpb24oCi0gICAg ICAgICAgICAoc2VnID09IHg4Nl9zZWdfc3MpID8gVFJBUF9zdGFja19lcnJvciA6IFRSQVBfZ3Bf ZmF1bHQsIDApOworICAgICAgICB4ODZfZW11bF9od19leGNlcHRpb24oCisgICAgICAgICAgICAo c2VnID09IHg4Nl9zZWdfc3MpID8gVFJBUF9zdGFja19lcnJvciA6IFRSQVBfZ3BfZmF1bHQsCisg ICAgICAgICAgICAwLCAmc2hfY3R4dC0+Y3R4dCk7CiAgICAgICAgIHJldHVybiBYODZFTVVMX0VY Q0VQVElPTjsKICAgICB9CiAKQEAgLTMyMyw3ICszMjQsNyBAQCBwdl9lbXVsYXRlX3JlYWQoZW51 bSB4ODZfc2VnbWVudCBzZWcsCiAKICAgICBpZiAoIChyYyA9IGNvcHlfZnJvbV91c2VyKHBfZGF0 YSwgKHZvaWQgKilvZmZzZXQsIGJ5dGVzKSkgIT0gMCApCiAgICAgewotICAgICAgICBwdl9pbmpl Y3RfcGFnZV9mYXVsdCgwLCBvZmZzZXQgKyBieXRlcyAtIHJjKTsgLyogUmVhZCBmYXVsdC4gKi8K KyAgICAgICAgeDg2X2VtdWxfcGFnZWZhdWx0KDAsIG9mZnNldCArIGJ5dGVzIC0gcmMsIGN0eHQp OyAvKiBSZWFkIGZhdWx0LiAqLwogICAgICAgICByZXR1cm4gWDg2RU1VTF9FWENFUFRJT047CiAg ICAgfQogCkBAIC0xNzIwLDEwICsxNzIxLDggQEAgc3RhdGljIG1mbl90IGVtdWxhdGVfZ3ZhX3Rv X21mbihzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyB2YWRkciwKICAgICBnZm4gPSBwYWdp bmdfZ2V0X2hvc3Rtb2RlKHYpLT5ndmFfdG9fZ2ZuKHYsIE5VTEwsIHZhZGRyLCAmcGZlYyk7CiAg ICAgaWYgKCBnZm4gPT0gZ2ZuX3goSU5WQUxJRF9HRk4pICkKICAgICB7Ci0gICAgICAgIGlmICgg aXNfaHZtX3ZjcHUodikgKQotICAgICAgICAgICAgaHZtX2luamVjdF9wYWdlX2ZhdWx0KHBmZWMs IHZhZGRyKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcHZfaW5qZWN0X3BhZ2VfZmF1bHQo cGZlYywgdmFkZHIpOworICAgICAgICB4ODZfZW11bF9wYWdlZmF1bHQocGZlYywgdmFkZHIsICZz aF9jdHh0LT5jdHh0KTsKKwogICAgICAgICByZXR1cm4gX21mbihCQURfR1ZBX1RPX0dGTik7CiAg ICAgfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMgYi94ZW4v YXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMKaW5kZXggNTZjNDBmOC4uMDk4YjY1MyAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9t bS9zaGFkb3cvbXVsdGkuYwpAQCAtMzM3MywxOCArMzM3MywzNSBAQCBzdGF0aWMgaW50IHNoX3Bh Z2VfZmF1bHQoc3RydWN0IHZjcHUgKnYsCiAKICAgICByID0geDg2X2VtdWxhdGUoJmVtdWxfY3R4 dC5jdHh0LCBlbXVsX29wcyk7CiAKLSAgICAvKgotICAgICAqIFRoZSBwcmV2aW91cyBsYWNrIG9m IGluamVjdF97c3csaHd9KigpIGhvb2tzIGNhdXNlZCBleGNlcHRpb25zIHJhaXNlZAotICAgICAq IGJ5IHRoZSBlbXVsYXRvciBpdHNlbGYgdG8gYmVjb21lIFg4NkVNVUxfVU5IQU5ETEVBQkxFLiAg U3VjaCBleGNlcHRpb25zCi0gICAgICogbm93IHNldCBldmVudF9wZW5kaW5nIGluc3RlYWQuICBF eGNlcHRpb25zIHJhaXNlZCBiZWhpbmQgdGhlIGJhY2sgb2YKLSAgICAgKiB0aGUgZW11bGF0b3Ig ZG9uJ3QgeWV0IHNldCBldmVudF9wZW5kaW5nLgotICAgICAqCi0gICAgICogRm9yIG5vdywgY2F1 c2Ugc3VjaCBjYXNlcyB0byByZXR1cm4gdG8gdGhlIFg4NkVNVUxfVU5IQU5ETEVBQkxFIHBhdGgs Ci0gICAgICogZm9yIG5vIGZ1bmN0aW9uYWwgY2hhbmdlIGZyb20gYmVmb3JlLiAgRnV0dXJlIHBh dGNoZXMgd2lsbCBmaXggdGhpcwotICAgICAqIHByb3Blcmx5LgotICAgICAqLwogICAgIGlmICgg ciA9PSBYODZFTVVMX0VYQ0VQVElPTiAmJiBlbXVsX2N0eHQuY3R4dC5ldmVudF9wZW5kaW5nICkK LSAgICAgICAgciA9IFg4NkVNVUxfVU5IQU5ETEVBQkxFOworICAgIHsKKyAgICAgICAgLyoKKyAg ICAgICAgICogVGhpcyBlbXVsYXRpb24gY292ZXJzIHdyaXRlcyB0byBzaGFkb3cgcGFnZXRhYmxl cy4gIFdlIHRvbGVyYXRlICNQRgorICAgICAgICAgKiAoZnJvbSBoaXR0aW5nIGFkamFjZW50IHBh Z2VzKSBhbmQgI0dQLyNTUyAoZnJvbSBzZWdtZW50YXRpb24KKyAgICAgICAgICogZXJyb3JzKS4g IEFueXRoaW5nIGVsc2UgaXMgYW4gZW11bGF0aW9uIGJ1Zywgb3IgYSBndWVzdCBwbGF5aW5nCisg ICAgICAgICAqIHdpdGggdGhlIGluc3RydWN0aW9uIHN0cmVhbSB1bmRlciBYZW4ncyBmZWV0Lgor ICAgICAgICAgKi8KKyAgICAgICAgaWYgKCBlbXVsX2N0eHQuY3R4dC5ldmVudC50eXBlID09IFg4 Nl9FVkVOVFRZUEVfSFdfRVhDRVBUSU9OICYmCisgICAgICAgICAgICAgKGVtdWxfY3R4dC5jdHh0 LmV2ZW50LnZlY3RvciA8IDMyKSAmJgorICAgICAgICAgICAgICgoMXUgPDwgZW11bF9jdHh0LmN0 eHQuZXZlbnQudmVjdG9yKSAmCisgICAgICAgICAgICAgICgoMXUgPDwgVFJBUF9zdGFja19lcnJv cikgfCAoMXUgPDwgVFJBUF9ncF9mYXVsdCkgfAorICAgICAgICAgICAgICAgKDF1IDw8IFRSQVBf cGFnZV9mYXVsdCkpKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggaXNfaHZtX3ZjcHUo dikgKQorICAgICAgICAgICAgICAgIGh2bV9pbmplY3RfZXZlbnQoJmVtdWxfY3R4dC5jdHh0LmV2 ZW50KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBwdl9pbmplY3RfZXZlbnQo JmVtdWxfY3R4dC5jdHh0LmV2ZW50KTsKKworICAgICAgICAgICAgZ290byBlbXVsYXRlX2RvbmU7 CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBTSEFET1df UFJJTlRLKAorICAgICAgICAgICAgICAgICJVbmV4cGVjdGVkIGV2ZW50ICh0eXBlICV1LCB2ZWN0 b3IgJSN4KSBmcm9tIGVtdWxhdGlvblxuIiwKKyAgICAgICAgICAgICAgICBlbXVsX2N0eHQuY3R4 dC5ldmVudC50eXBlLCBlbXVsX2N0eHQuY3R4dC5ldmVudC52ZWN0b3IpOworICAgICAgICAgICAg ciA9IFg4NkVNVUxfVU5IQU5ETEVBQkxFOworICAgICAgICB9CisgICAgfQogCiAgICAgLyoKICAg ICAgKiBOQi4gV2UgZG8gbm90IHVuc2hhZG93IG9uIFg4NkVNVUxfRVhDRVBUSU9OLiBJdCdzIG5v dCBjbGVhciB0aGF0IGl0Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=