From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v2 3/3] x86/emul: Support CPUID faulting via a speculative MSR read Date: Mon, 20 Feb 2017 10:32:07 +0000 Message-ID: References: <1487586529-27092-1-git-send-email-andrew.cooper3@citrix.com> <1487586529-27092-4-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: <1487586529-27092-4-git-send-email-andrew.cooper3@citrix.com> Content-Language: en-US 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 , Jan Beulich List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IEFuZHJldyBDb29wZXIgW21haWx0 bzphbmRyZXcuY29vcGVyM0BjaXRyaXguY29tXQo+IFNlbnQ6IDIwIEZlYnJ1YXJ5IDIwMTcgMTA6 MjkKPiBUbzogWGVuLWRldmVsIDx4ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZz4KPiBDYzogQW5kcmV3 IENvb3BlciA8QW5kcmV3LkNvb3BlcjNAY2l0cml4LmNvbT47IEphbiBCZXVsaWNoCj4gPEpCZXVs aWNoQHN1c2UuY29tPjsgUGF1bCBEdXJyYW50IDxQYXVsLkR1cnJhbnRAY2l0cml4LmNvbT4KPiBT dWJqZWN0OiBbUEFUQ0ggdjIgMy8zXSB4ODYvZW11bDogU3VwcG9ydCBDUFVJRCBmYXVsdGluZyB2 aWEgYSBzcGVjdWxhdGl2ZQo+IE1TUiByZWFkCj4gCj4gVGhpcyByZW1vdmVzIHRoZSBuZWVkIGZv ciBldmVyeSBjcHVpZCgpIGVtdWxhdGlvbiBob29rIHRvIGluZGl2aWR1YWxseQo+IHN1cHBvcnQK PiBDUFVJRCBmYXVsdGluZy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRy ZXcuY29vcGVyM0BjaXRyaXguY29tPgo+IC0tLQo+IENDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hA c3VzZS5jb20+Cj4gQ0M6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Cj4g Cgpodm0vZW11bGF0ZS5jIGNoYW5nZS4uLgoKUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1 bC5kdXJyYW50QGNpdHJpeC5jb20+Cgo+IHYyOgo+ICAqIFN1YnN0YW50aWFsIHJlYmFzZQo+ICAq IFJlaW1wbGVtZW50IHNwZWN1bGF0aXZlIHJlYWRpbmcgYnkgc3F1YXNoaW5nIHRoZSBleGNlcHRp b24gcmF0aGVyIHRoYW4KPiAgICB0cnlpbmcgdG8gcHJldmVudCBpdCBieSB1c2luZyBhbiBleHRy YSBmdW5jdGlvbiBwYXJhbWV0ZXIuCj4gLS0tCj4gIHhlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5j ICAgICAgICAgICAgIHwgIDkgLS0tLS0tLS0tCj4gIHhlbi9hcmNoL3g4Ni90cmFwcy5jICAgICAg ICAgICAgICAgICAgIHwgMTggKy0tLS0tLS0tLS0tLS0tLS0tCj4gIHhlbi9hcmNoL3g4Ni94ODZf ZW11bGF0ZS94ODZfZW11bGF0ZS5jIHwgMTkgKysrKysrKysrKysrKysrKystLQo+ICB4ZW4vYXJj aC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuaCB8ICA3ICstLS0tLS0KPiAgNCBmaWxlcyBj aGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUu Ywo+IGluZGV4IGVkY2FlNWUuLmYyNGQyODkgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L2h2 bS9lbXVsYXRlLmMKPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwo+IEBAIC0xNTc1 LDE1ICsxNTc1LDYgQEAgc3RhdGljIGludCBodm1lbXVsX3diaW52ZCgKPiAgaW50IGh2bWVtdWxf Y3B1aWQodWludDMyX3QgbGVhZiwgdWludDMyX3Qgc3VibGVhZiwKPiAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGNwdWlkX2xlYWYgKnJlcywgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQp Cj4gIHsKPiAtICAgIC8qCj4gLSAgICAgKiB4ODZfZW11bGF0ZSB1c2VzIHRoaXMgZnVuY3Rpb24g dG8gcXVlcnkgQ1BVIGZlYXR1cmVzIGZvciBpdHMgb3duCj4gaW50ZXJuYWwKPiAtICAgICAqIHVz ZS4gTWFrZSBzdXJlIHdlJ3JlIGFjdHVhbGx5IGVtdWxhdGluZyBDUFVJRCBiZWZvcmUgZW11bGF0 aW5nIENQVUlECj4gLSAgICAgKiBmYXVsdGluZy4KPiAtICAgICAqLwo+IC0gICAgaWYgKCBjdHh0 LT5vcGNvZGUgPT0gWDg2RU1VTF9PUEMoMHgwZiwgMHhhMikgJiYKPiAtICAgICAgICAgaHZtX2No ZWNrX2NwdWlkX2ZhdWx0aW5nKGN1cnJlbnQpICkKPiAtICAgICAgICByZXR1cm4gWDg2RU1VTF9F WENFUFRJT047Cj4gLQo+ICAgICAgZ3Vlc3RfY3B1aWQoY3VycmVudCwgbGVhZiwgc3VibGVhZiwg cmVzKTsKPiAgICAgIHJldHVybiBYODZFTVVMX09LQVk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L3RyYXBzLmMgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwo+IGluZGV4IGVjOGIwMDIu Ljc1Yzg5ZWIgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L3RyYXBzLmMKPiArKysgYi94ZW4v YXJjaC94ODYvdHJhcHMuYwo+IEBAIC0yODg0LDIzICsyODg0LDcgQEAgc3RhdGljIGludCBwcml2 X29wX3diaW52ZChzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dAo+ICpjdHh0KQo+ICBpbnQgcHZfZW11 bF9jcHVpZCh1aW50MzJfdCBsZWFmLCB1aW50MzJfdCBzdWJsZWFmLAo+ICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgY3B1aWRfbGVhZiAqcmVzLCBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4 dCkKPiAgewo+IC0gICAgY29uc3Qgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50Owo+IC0KPiAt ICAgIC8qCj4gLSAgICAgKiB4ODZfZW11bGF0ZSB1c2VzIHRoaXMgZnVuY3Rpb24gdG8gcXVlcnkg Q1BVIGZlYXR1cmVzIGZvciBpdHMgb3duCj4gLSAgICAgKiBpbnRlcm5hbCB1c2UuIE1ha2Ugc3Vy ZSB3ZSdyZSBhY3R1YWxseSBlbXVsYXRpbmcgQ1BVSUQgYmVmb3JlIGNoZWNraW5nCj4gLSAgICAg KiBmb3IgZW11bGF0ZWQgQ1BVSUQgZmF1bHRpbmcuCj4gLSAgICAgKi8KPiAtICAgIGlmICggY3R4 dC0+b3Bjb2RlID09IFg4NkVNVUxfT1BDKDB4MGYsIDB4YTIpICkKPiAtICAgIHsKPiAtCj4gLSAg ICAgICAgLyogSWYgY3B1aWQgZmF1bHRpbmcgaXMgZW5hYmxlZCBhbmQgQ1BMPjAgbGVhdmUgdGhl ICNHUCB1bnRvdWNoZWQuICovCj4gLSAgICAgICAgaWYgKCBjdXJyLT5hcmNoLmNwdWlkX2ZhdWx0 aW5nICYmCj4gLSAgICAgICAgICAgICAhZ3Vlc3Rfa2VybmVsX21vZGUoY3VyciwgY3R4dC0+cmVn cykgKQo+IC0gICAgICAgICAgICByZXR1cm4gWDg2RU1VTF9FWENFUFRJT047Cj4gLSAgICB9Cj4g LQo+IC0gICAgZ3Vlc3RfY3B1aWQoY3VyciwgbGVhZiwgc3VibGVhZiwgcmVzKTsKPiArICAgIGd1 ZXN0X2NwdWlkKGN1cnJlbnQsIGxlYWYsIHN1YmxlYWYsIHJlcyk7Cj4gCj4gICAgICByZXR1cm4g WDg2RU1VTF9PS0FZOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0 ZS94ODZfZW11bGF0ZS5jCj4gYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUu Ywo+IGluZGV4IGYzMzlkMzYuLmMzZmMyNmEgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L3g4 Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKPiArKysgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUv eDg2X2VtdWxhdGUuYwo+IEBAIC01NDI0LDEwICs1NDI0LDI1IEBAIHg4Nl9lbXVsYXRlKAo+ICAg ICAgICAgIGJyZWFrOwo+IAo+ICAgICAgY2FzZSBYODZFTVVMX09QQygweDBmLCAweGEyKTogLyog Y3B1aWQgKi8KPiArICAgICAgICBtc3JfdmFsID0gMDsKPiAgICAgICAgICBmYWlsX2lmKG9wcy0+ Y3B1aWQgPT0gTlVMTCk7Cj4gKwo+ICsgICAgICAgIC8qIFNwZWN1bGF0aXZlbHkgcmVhZCBNU1Jf SU5URUxfTUlTQ19GRUFUVVJFU19FTkFCTEVTLiAqLwo+ICsgICAgICAgIGlmICggb3BzLT5yZWFk X21zciAmJgo+ICsgICAgICAgICAgICAgKHJjID0gb3BzLT5yZWFkX21zcihNU1JfSU5URUxfTUlT Q19GRUFUVVJFU19FTkFCTEVTLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm bXNyX3ZhbCwgY3R4dCkpID09IFg4NkVNVUxfRVhDRVBUSU9OICkKPiArICAgICAgICB7Cj4gKyAg ICAgICAgICAgIC8qIE5vdCBpbXBsZW1lbnRlZC4gIFNxdWFzaCB0aGUgZXhjZXB0aW9uIGFuZCBw cm9jZWVkIG5vcm1hbGx5LiAqLwo+ICsgICAgICAgICAgICB4ODZfZW11bF9yZXNldF9ldmVudChj dHh0KTsKPiArICAgICAgICAgICAgcmMgPSBYODZFTVVMX09LQVk7Cj4gKyAgICAgICAgfQo+ICsg ICAgICAgIGlmICggcmMgIT0gWDg2RU1VTF9PS0FZICkKPiArICAgICAgICAgICAgZ290byBkb25l Owo+ICsKPiArICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoKG1zcl92YWwgJgo+IE1TUl9N SVNDX0ZFQVRVUkVTX0NQVUlEX0ZBVUxUSU5HKSAmJgo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAhbW9kZV9yaW5nMCgpLCBFWENfR1AsIDApOyAvKiBGYXVsdGluZyBhY3RpdmU/ICov Cj4gKwo+ICAgICAgICAgIHJjID0gb3BzLT5jcHVpZChfcmVncy5fZWF4LCBfcmVncy5fZWN4LCAm Y3B1aWRfbGVhZiwgY3R4dCk7Cj4gLSAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKHJjID09 IFg4NkVNVUxfRVhDRVBUSU9OLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWENf R1AsIDApOyAvKiBDUFVJRCBGYXVsdGluZz8gKi8KPiAgICAgICAgICBpZiAoIHJjICE9IFg4NkVN VUxfT0tBWSApCj4gICAgICAgICAgICAgIGdvdG8gZG9uZTsKPiAgICAgICAgICBfcmVncy5yKGF4 KSA9IGNwdWlkX2xlYWYuYTsKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRl L3g4Nl9lbXVsYXRlLmgKPiBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5o Cj4gaW5kZXggMDcxNjY4ZC4uYzM1ODczZSAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYveDg2 X2VtdWxhdGUveDg2X2VtdWxhdGUuaAo+ICsrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94 ODZfZW11bGF0ZS5oCj4gQEAgLTQxMywxMiArNDEzLDcgQEAgc3RydWN0IHg4Nl9lbXVsYXRlX29w cwo+ICAgICAgaW50ICgqd2JpbnZkKSgKPiAgICAgICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4 dCAqY3R4dCk7Cj4gCj4gLSAgICAvKgo+IC0gICAgICogY3B1aWQ6IEVtdWxhdGUgQ1BVSUQgdmlh IGdpdmVuIHNldCBvZiBFQVgtRURYIGlucHV0cy9vdXRwdXRzLgo+IC0gICAgICoKPiAtICAgICAq IE1heSByZXR1cm4gWDg2RU1VTF9FWENFUFRJT04sIHdoaWNoIGNhdXNlcyB0aGUgZW11bGF0b3Ig dG8gaW5qZWN0Cj4gLSAgICAgKiAjR1BbMF0uICBVc2VkIHRvIGltcGxlbWVudCBDUFVJRCBmYXVs dGluZy4KPiAtICAgICAqLwo+ICsgICAgLyogY3B1aWQ6IEVtdWxhdGUgQ1BVSUQgdmlhIGdpdmVu IHNldCBvZiBFQVgtRURYIGlucHV0cy9vdXRwdXRzLiAqLwo+ICAgICAgaW50ICgqY3B1aWQpKAo+ ICAgICAgICAgIHVpbnQzMl90IGxlYWYsCj4gICAgICAgICAgdWludDMyX3Qgc3VibGVhZiwKPiAt LQo+IDIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==