From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 12/19] x86/pv: Avoid raising faults behind the emulators back Date: Mon, 28 Nov 2016 11:13:29 +0000 Message-ID: <1480331616-6165-13-git-send-email-andrew.cooper3@citrix.com> References: <1480331616-6165-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: <1480331616-6165-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 VXNlIHg4Nl9lbXVsX3BhZ2VmYXVsdCgpIHJhdGhlciB0aGFuIHB2X2luamVjdF9wYWdlX2ZhdWx0 KCkgdG8gY2F1c2UgcmFpc2VkCnBhZ2VmYXVsdHMgdG8gYmUga25vd24gdG8gdGhlIGVtdWxhdG9y LiAgVGhpcyByZXF1aXJlcyBhbHRlcmluZyB0aGUgY2FsbGVycyBvZgp4ODZfZW11bGF0ZSgpIHRv IHByb3Blcmx5IHJlLWluamVjdCB0aGUgZXZlbnQuCgpXaGlsZSBmaXhpbmcgdGhpcywgZml4IHRo ZSBzaW5nbGVzdGVwIGJlaGF2aW91ci4gIFByZXZpb3VzbHksIGFuIG90aGVyd2lzZQpzdWNjZXNz ZnVsIGVtdWxhdGlvbiB3b3VsZCBmYWlsIGlmIHNpbmdsZXN0ZXBwaW5nIHdhcyBhY3RpdmUsIGFz IHRoZSBlbXVsYXRvcgpjb3VsZG4ndCByYWlzZSAjREIuICBUaGlzIGlzIHVucmVhc29uYWJsZSBm cm9tIHRoZSBwb2ludCBvZiB2aWV3IG9mIHRoZSBndWVzdC4KCldlIHRoZXJlZm9yZSB0b2xlcmF0 ZSBlaXRoZXIgI1BGIG9yICNEQiBiZWluZyByYWlzZWQgYnkgdGhlIGVtdWxhdG9yLCBidXQKcmVq ZWN0IGFueXRoaW5nIGVsc2UgYXMgdW5leHBlY3RlZC4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpC ZXVsaWNoQHN1c2UuY29tPgpDQzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+Cgp2MjoKICogTmV3 Ci0tLQogeGVuL2FyY2gveDg2L21tLmMgfCA5NiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjQgaW5zZXJ0aW9u cygrKSwgMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94 ZW4vYXJjaC94ODYvbW0uYwppbmRleCA4YTFlN2I0Li41YjYwYjU5IDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtNTEzNiw3ICs1MTM2LDcg QEAgc3RhdGljIGludCBwdHdyX2VtdWxhdGVkX3JlYWQoCiAgICAgaWYgKCAhX19hZGRyX29rKGFk ZHIpIHx8CiAgICAgICAgICAocmMgPSBfX2NvcHlfZnJvbV91c2VyKHBfZGF0YSwgKHZvaWQgKilh ZGRyLCBieXRlcykpICkKICAgICB7Ci0gICAgICAgIHB2X2luamVjdF9wYWdlX2ZhdWx0KDAsIGFk ZHIgKyBieXRlcyAtIHJjKTsgLyogUmVhZCBmYXVsdC4gKi8KKyAgICAgICAgeDg2X2VtdWxfcGFn ZWZhdWx0KDAsIGFkZHIgKyBieXRlcyAtIHJjLCBjdHh0KTsgIC8qIFJlYWQgZmF1bHQuICovCiAg ICAgICAgIHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKICAgICB9CiAKQEAgLTUxNzcsOCArNTE3 Nyw5IEBAIHN0YXRpYyBpbnQgcHR3cl9lbXVsYXRlZF91cGRhdGUoCiAgICAgICAgIGFkZHIgJj0g fihzaXplb2YocGFkZHJfdCktMSk7CiAgICAgICAgIGlmICggKHJjID0gY29weV9mcm9tX3VzZXIo JmZ1bGwsICh2b2lkICopYWRkciwgc2l6ZW9mKHBhZGRyX3QpKSkgIT0gMCApCiAgICAgICAgIHsK LSAgICAgICAgICAgIHB2X2luamVjdF9wYWdlX2ZhdWx0KDAsIC8qIFJlYWQgZmF1bHQuICovCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyICsgc2l6ZW9mKHBhZGRyX3QpIC0g cmMpOworICAgICAgICAgICAgeDg2X2VtdWxfcGFnZWZhdWx0KDAsIC8qIFJlYWQgZmF1bHQuICov CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkciArIHNpemVvZihwYWRkcl90KSAt IHJjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwdHdyX2N0eHQtPmN0eHQpOwog ICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwogICAgICAgICB9CiAgICAgICAg IC8qIE1hc2sgb3V0IGJpdHMgcHJvdmlkZWQgYnkgY2FsbGVyLiAqLwpAQCAtNTM3OSwyNyArNTM4 MCw0MCBAQCBpbnQgcHR3cl9kb19wYWdlX2ZhdWx0KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBs b25nIGFkZHIsCiAgICAgcGFnZV91bmxvY2socGFnZSk7CiAgICAgcHV0X3BhZ2UocGFnZSk7CiAK LSAgICAvKgotICAgICAqIFRPRE86IE1ha2UgdGhpcyB0cnVlOgotICAgICAqCiAgICAgQVNTRVJU KHB0d3JfY3R4dC5jdHh0LmV2ZW50X3BlbmRpbmcgPT0gKHJjID09IFg4NkVNVUxfRVhDRVBUSU9O KSk7Ci0gICAgICoKLSAgICAgKiBTb21lIGNvZGVwYXRocyBzdGlsbCByYWlzZSBleGNlcHRpb25z IGJlaGluZCB0aGUgYmFjayBvZiB0aGUKLSAgICAgKiBlbXVsYXRvci4gKGkuZS4gcmV0dXJuIFg4 NkVNVUxfRVhDRVBUSU9OIGJ1dCB3aXRob3V0Ci0gICAgICogZXZlbnRfcGVuZGluZyBiZWluZyBz ZXQpLiAgSW4gdGhlIG1lYW50aW1lLCB1c2UgYSBzbGlnaHRseQotICAgICAqIHJlbGF4ZWQgY2hl Y2suLi4KLSAgICAgKi8KLSAgICBpZiAoIHB0d3JfY3R4dC5jdHh0LmV2ZW50X3BlbmRpbmcgKQot ICAgICAgICBBU1NFUlQocmMgPT0gWDg2RU1VTF9FWENFUFRJT04pOwogCi0gICAgaWYgKCByYyA9 PSBYODZFTVVMX1VOSEFORExFQUJMRSB8fCBwdHdyX2N0eHQuY3R4dC5ldmVudF9wZW5kaW5nICkK LSAgICAgICAgZ290byBiYWlsOworICAgIHN3aXRjaCAoIHJjICkKKyAgICB7CisgICAgY2FzZSBY ODZFTVVMX0VYQ0VQVElPTjoKKyAgICAgICAgLyoKKyAgICAgICAgICogVGhpcyBlbXVsYXRpb24g b25seSBjb3ZlcnMgd3JpdGVzIHRvIHBhZ2V0YWJsZXMgd2hpY2ggbWFya2VkCisgICAgICAgICAq IHJlYWQtb25seSBieSBYZW4uICBXZSB0b2xlcmF0ZSAjUEYgKGZyb20gaGl0dGluZyBhbiBhZGph Y2VudCBwYWdlKQorICAgICAgICAgKiBhbmQgI0RCIChmcm9tIHNpbmdsZXN0ZXBwaW5nKS4gIEFu eXRoaW5nIGVsc2UgaXMgYW4gZW11bGF0aW9uIGJ1ZywKKyAgICAgICAgICogb3IgYSBndWVzdCBw bGF5aW5nIHdpdGggdGhlIGluc3RydWN0aW9uIHN0cmVhbSB1bmRlciBYZW4ncyBmZWV0LgorICAg ICAgICAgKi8KKyAgICAgICAgaWYgKCBwdHdyX2N0eHQuY3R4dC5ldmVudC50eXBlID09IFg4Nl9F VkVOVFRZUEVfSFdfRVhDRVBUSU9OICYmCisgICAgICAgICAgICAgKHB0d3JfY3R4dC5jdHh0LmV2 ZW50LnZlY3RvciA9PSBUUkFQX2RlYnVnIHx8CisgICAgICAgICAgICAgIHB0d3JfY3R4dC5jdHh0 LmV2ZW50LnZlY3RvciA9PSBUUkFQX3BhZ2VfZmF1bHQpICkKKyAgICAgICAgICAgIHB2X2luamVj dF9ldmVudCgmcHR3cl9jdHh0LmN0eHQuZXZlbnQpOworICAgICAgICBlbHNlCisgICAgICAgIHsK KyAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLAorICAgICAgICAgICAgICAgICAg ICAgIlVuZXhwZWN0ZWQgZXZlbnQgKHR5cGUgJXUsIHZlY3RvciAlI3gpIGZyb20gZW11bGF0aW9u XG4iLAorICAgICAgICAgICAgICAgICAgICAgcHR3cl9jdHh0LmN0eHQuZXZlbnQudHlwZSwgcHR3 cl9jdHh0LmN0eHQuZXZlbnQudmVjdG9yKTsKKworICAgICAgICAgICAgcHZfaW5qZWN0X2h3X2V4 Y2VwdGlvbihUUkFQX2dwX2ZhdWx0LCAwKTsKKyAgICAgICAgfQogCi0gICAgcGVyZmNfaW5jcihw dHdyX2VtdWxhdGlvbnMpOwotICAgIHJldHVybiBFWENSRVRfZmF1bHRfZml4ZWQ7CisgICAgICAg IC8qIEZhbGx0aHJvdWdoICovCisgICAgY2FzZSBYODZFTVVMX09LQVk6CisgICAgY2FzZSBYODZF TVVMX1JFVFJZOgorICAgICAgICBwZXJmY19pbmNyKHB0d3JfZW11bGF0aW9ucyk7CisgICAgICAg IHJldHVybiBFWENSRVRfZmF1bHRfZml4ZWQ7CiAKICBiYWlsOgotICAgIHJldHVybiAwOworICAg IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KIH0KIAogLyoqKioqKioqKioqKioq KioqKioqKioqKioKQEAgLTU1MTYsMjEgKzU1MzAsMzkgQEAgaW50IG1taW9fcm9fZG9fcGFnZV9m YXVsdChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyBhZGRyLAogICAgIGVsc2UKICAgICAg ICAgcmMgPSB4ODZfZW11bGF0ZSgmY3R4dCwgJm1taW9fcm9fZW11bGF0ZV9vcHMpOwogCi0gICAg LyoKLSAgICAgKiBUT0RPOiBNYWtlIHRoaXMgdHJ1ZToKLSAgICAgKgogICAgIEFTU0VSVChjdHh0 LmV2ZW50X3BlbmRpbmcgPT0gKHJjID09IFg4NkVNVUxfRVhDRVBUSU9OKSk7Ci0gICAgICoKLSAg ICAgKiBTb21lIGNvZGVwYXRocyBzdGlsbCByYWlzZSBleGNlcHRpb25zIGJlaGluZCB0aGUgYmFj ayBvZiB0aGUKLSAgICAgKiBlbXVsYXRvci4gKGkuZS4gcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9O IGJ1dCB3aXRob3V0Ci0gICAgICogZXZlbnRfcGVuZGluZyBiZWluZyBzZXQpLiAgSW4gdGhlIG1l YW50aW1lLCB1c2UgYSBzbGlnaHRseQotICAgICAqIHJlbGF4ZWQgY2hlY2suLi4KLSAgICAgKi8K LSAgICBpZiAoIGN0eHQuZXZlbnRfcGVuZGluZyApCi0gICAgICAgIEFTU0VSVChyYyA9PSBYODZF TVVMX0VYQ0VQVElPTik7CiAKLSAgICByZXR1cm4gKChyYyAhPSBYODZFTVVMX1VOSEFORExFQUJM RSAmJiAhY3R4dC5ldmVudF9wZW5kaW5nKQotICAgICAgICAgICAgPyBFWENSRVRfZmF1bHRfZml4 ZWQgOiAwKTsKKyAgICBzd2l0Y2ggKCByYyApCisgICAgeworICAgIGNhc2UgWDg2RU1VTF9FWENF UFRJT046CisgICAgICAgIC8qCisgICAgICAgICAqIFRoaXMgZW11bGF0aW9uIG9ubHkgY292ZXJz IHdyaXRlcyB0byBNTUNGRyBzcGFjZSBvciByZWFkLW9ubHkgTUZOcy4KKyAgICAgICAgICogV2Ug dG9sZXJhdGUgI1BGIChmcm9tIGhpdHRpbmcgYW4gYWRqYWNlbnQgcGFnZSkgYW5kICNEQiAoZnJv bQorICAgICAgICAgKiBzaW5nbGVzdGVwcGluZykuICBBbnl0aGluZyBlbHNlIGlzIGFuIGVtdWxh dGlvbiBidWcsIG9yIGEgZ3Vlc3QKKyAgICAgICAgICogcGxheWluZyB3aXRoIHRoZSBpbnN0cnVj dGlvbiBzdHJlYW0gdW5kZXIgWGVuJ3MgZmVldC4KKyAgICAgICAgICovCisgICAgICAgIGlmICgg Y3R4dC5ldmVudC50eXBlID09IFg4Nl9FVkVOVFRZUEVfSFdfRVhDRVBUSU9OICYmCisgICAgICAg ICAgICAgKGN0eHQuZXZlbnQudmVjdG9yID09IFRSQVBfZGVidWcgfHwKKyAgICAgICAgICAgICAg Y3R4dC5ldmVudC52ZWN0b3IgPT0gVFJBUF9wYWdlX2ZhdWx0KSApCisgICAgICAgICAgICBwdl9p bmplY3RfZXZlbnQoJmN0eHQuZXZlbnQpOworICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAg ICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLAorICAgICAgICAgICAgICAgICAgICAgIlVu ZXhwZWN0ZWQgZXZlbnQgKHR5cGUgJXUsIHZlY3RvciAlI3gpIGZyb20gZW11bGF0aW9uXG4iLAor ICAgICAgICAgICAgICAgICAgICAgY3R4dC5ldmVudC50eXBlLCBjdHh0LmV2ZW50LnZlY3Rvcik7 CisKKyAgICAgICAgICAgIHB2X2luamVjdF9od19leGNlcHRpb24oVFJBUF9ncF9mYXVsdCwgMCk7 CisgICAgICAgIH0KKworICAgICAgICAvKiBGYWxsdGhyb3VnaCAqLworICAgIGNhc2UgWDg2RU1V TF9PS0FZOgorICAgIGNhc2UgWDg2RU1VTF9SRVRSWToKKyAgICAgICAgcGVyZmNfaW5jcihwdHdy X2VtdWxhdGlvbnMpOworICAgICAgICByZXR1cm4gRVhDUkVUX2ZhdWx0X2ZpeGVkOworCisgICAg ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQogfQogCiB2b2lkICphbGxvY194ZW5f cGFnZXRhYmxlKHZvaWQpCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=