From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v2] x86/HVM: use available linear->phys translations in REP MOVS/STOS handling Date: Mon, 20 Jun 2016 12:22:47 +0000 Message-ID: <5b125d0397f448eaa25f7cc1fdf099a8@AMSPEX02CL03.citrite.net> References: <5767EFA602000078000F6A2E@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bEyHi-0003rm-Dg for xen-devel@lists.xenproject.org; Mon, 20 Jun 2016 12:26:34 +0000 In-Reply-To: <5767EFA602000078000F6A2E@prv-mh.provo.novell.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: Jan Beulich , xen-devel List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IEphbiBCZXVsaWNoIFttYWlsdG86 SkJldWxpY2hAc3VzZS5jb21dCj4gU2VudDogMjAgSnVuZSAyMDE2IDEyOjI5Cj4gVG86IHhlbi1k ZXZlbAo+IENjOiBQYXVsIER1cnJhbnQKPiBTdWJqZWN0OiBbUEFUQ0ggdjJdIHg4Ni9IVk06IHVz ZSBhdmFpbGFibGUgbGluZWFyLT5waHlzIHRyYW5zbGF0aW9ucyBpbiBSRVAKPiBNT1ZTL1NUT1Mg aGFuZGxpbmcKPiAKPiBJZiB3ZSBoYXZlIHRoZSB0cmFuc2xhdGlvbiByZXN1bHQgYXZhaWxhYmxl IGFscmVhZHksIHdlIHNob3VsZCBhbHNvIHVzZQo+IGl0IGhlcmUuIEluIG15IHRlc3RzIHdpdGgg TGludXggZ3Vlc3RzIHRoaXMgZWxpbWluYXRlcyBhbGwgY2FsbHMgdG8KPiBodm1lbXVsX2xpbmVh cl90b19waHlzKCkgZnJvbSB0aGUgU1RPUyBwYXRoIGFuZCBtb3N0IGZyb20gdGhlIE1PVlMKPiBv bmUuCj4gCj4gQWxzbyByZWNvcmQgdGhlIHRyYW5zbGF0aW9uIGZvciByZS11c2UgYXQgbGVhc3Qg ZHVyaW5nIHJlc3BvbnNlCj4gcHJvY2Vzc2luZy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1 bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVs LmR1cnJhbnRAY2l0cml4LmNvbT4KCj4gLS0tCj4gdjI6IFJlc3RyaWN0IHRvIHNpbmdsZSBpdGVy YXRpb24gb3IgYWRkcmVzcyBpbmNyZW1lbnRpbmcgdmFyaWFudCB1cG9uCj4gICAgIGluaXRpYWwg aW52b2NhdGlvbiwgYW5kIGRvbid0IGJvdW5kICpyZXBzIHVwb24gcmVzcG9uc2UgcHJvY2Vzc2lu Zy4KPiAgICAgTGF0Y2ggdHJhbnNsYXRpb24gb25seSBmb3IgdGhlIGFjdHVhbCBNTUlPIHBhcnQg b2YgdGhlIGFjY2Vzc2VzICh0bwo+ICAgICBtYXRjaCB0aGUgcHVycG9zZSBvZiB0aGUgcGVyLXZD UFUgZmllbGRzOyBhbnkgZnVydGhlciB0cmFuc2xhdGlvbgo+ICAgICBjYWNoaW5nIHNob3VsZCBw cm9iYWJseSBnbyBpbnRvIGh2bWVtdWxfbGluZWFyX3RvX3BoeXMoKSBpdHNlbGYpLgo+ICAgICBB bHNvIHRoaXMgdGltZSB0ZXN0ZWQgb24gQU1EIGFzIHdlbGwgKGFsYmVpdCBpdCBzdGlsbCBlc2Nh cGVzIG1lCj4gICAgIHdoeSBiZWhhdmlvciBoZXJlIHdvdWxkIGJlIENQVSB2ZW5kb3IgZGVwZW5k ZW50KS4KPiAKPiAtLS0gYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwo+ICsrKyBiL3hlbi9h cmNoL3g4Ni9odm0vZW11bGF0ZS5jCj4gQEAgLTExNTYsNiArMTE1Niw3IEBAIHN0YXRpYyBpbnQg aHZtZW11bF9yZXBfbW92cygKPiAgewo+ICAgICAgc3RydWN0IGh2bV9lbXVsYXRlX2N0eHQgKmh2 bWVtdWxfY3R4dCA9Cj4gICAgICAgICAgY29udGFpbmVyX29mKGN0eHQsIHN0cnVjdCBodm1fZW11 bGF0ZV9jdHh0LCBjdHh0KTsKPiArICAgIHN0cnVjdCBodm1fdmNwdV9pbyAqdmlvID0gJmN1cnJl bnQtPmFyY2guaHZtX3ZjcHUuaHZtX2lvOwo+ICAgICAgdW5zaWduZWQgbG9uZyBzYWRkciwgZGFk ZHIsIGJ5dGVzOwo+ICAgICAgcGFkZHJfdCBzZ3BhLCBkZ3BhOwo+ICAgICAgdWludDMyX3QgcGZl YyA9IFBGRUNfcGFnZV9wcmVzZW50Owo+IEBAIC0xMTc4LDE2ICsxMTc5LDQxIEBAIHN0YXRpYyBp bnQgaHZtZW11bF9yZXBfbW92cygKPiAgICAgIGlmICggaHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4 Nl9zZWdfc3NdLmF0dHIuZmllbGRzLmRwbCA9PSAzICkKPiAgICAgICAgICBwZmVjIHw9IFBGRUNf dXNlcl9tb2RlOwo+IAo+IC0gICAgcmMgPSBodm1lbXVsX2xpbmVhcl90b19waHlzKAo+IC0gICAg ICAgIHNhZGRyLCAmc2dwYSwgYnl0ZXNfcGVyX3JlcCwgcmVwcywgcGZlYywgaHZtZW11bF9jdHh0 KTsKPiAtICAgIGlmICggcmMgIT0gWDg2RU1VTF9PS0FZICkKPiAtICAgICAgICByZXR1cm4gcmM7 Cj4gKyAgICBpZiAoIHZpby0+bW1pb19hY2Nlc3MucmVhZF9hY2Nlc3MgJiYKPiArICAgICAgICAg KHZpby0+bW1pb19nbGEgPT0gKHNhZGRyICYgUEFHRV9NQVNLKSkgJiYKPiArICAgICAgICAgLyoK PiArICAgICAgICAgICogVXBvbiBpbml0aWFsIGludm9jYXRpb24gZG9uJ3QgdHJ1bmNhdGUgbGFy Z2UgYmF0Y2hlcyBqdXN0IGJlY2F1c2UKPiArICAgICAgICAgICogb2YgYSBoaXQgZm9yIHRoZSB0 cmFuc2xhdGlvbjogRG9pbmcgdGhlIGd1ZXN0IHBhZ2UgdGFibGUgd2FsayBpcwo+ICsgICAgICAg ICAgKiBjaGVhcGVyIHRoYW4gbXVsdGlwbGUgcm91bmQgdHJpcHMgdGhyb3VnaCB0aGUgZGV2aWNl IG1vZGVsLiBZZXQKPiArICAgICAgICAgICogd2hlbiBwcm9jZXNzaW5nIGEgcmVzcG9uc2Ugd2Ug Y2FuIGFsd2F5cyByZS11c2UgdGhlIHRyYW5zbGF0aW9uLgo+ICsgICAgICAgICAgKi8KPiArICAg ICAgICAgKHZpby0+aW9fcmVxLnN0YXRlID09IFNUQVRFX0lPUkVTUF9SRUFEWSB8fAo+ICsgICAg ICAgICAgKCghZGYgfHwgKnJlcHMgPT0gMSkgJiYKPiArICAgICAgICAgICBQQUdFX1NJWkUgLSAo c2FkZHIgJiB+UEFHRV9NQVNLKSA+PSAqcmVwcyAqIGJ5dGVzX3Blcl9yZXApKSApCj4gKyAgICAg ICAgc2dwYSA9IHBmbl90b19wYWRkcih2aW8tPm1taW9fZ3BmbikgfCAoc2FkZHIgJiB+UEFHRV9N QVNLKTsKPiArICAgIGVsc2UKPiArICAgIHsKPiArICAgICAgICByYyA9IGh2bWVtdWxfbGluZWFy X3RvX3BoeXMoc2FkZHIsICZzZ3BhLCBieXRlc19wZXJfcmVwLCByZXBzLCBwZmVjLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodm1lbXVsX2N0eHQpOwo+ICsgICAgICAg IGlmICggcmMgIT0gWDg2RU1VTF9PS0FZICkKPiArICAgICAgICAgICAgcmV0dXJuIHJjOwo+ICsg ICAgfQo+IAo+IC0gICAgcmMgPSBodm1lbXVsX2xpbmVhcl90b19waHlzKAo+IC0gICAgICAgIGRh ZGRyLCAmZGdwYSwgYnl0ZXNfcGVyX3JlcCwgcmVwcywKPiAtICAgICAgICBwZmVjIHwgUEZFQ193 cml0ZV9hY2Nlc3MsIGh2bWVtdWxfY3R4dCk7Cj4gLSAgICBpZiAoIHJjICE9IFg4NkVNVUxfT0tB WSApCj4gLSAgICAgICAgcmV0dXJuIHJjOwo+ICsgICAgYnl0ZXMgPSBQQUdFX1NJWkUgLSAoZGFk ZHIgJiB+UEFHRV9NQVNLKTsKPiArICAgIGlmICggdmlvLT5tbWlvX2FjY2Vzcy53cml0ZV9hY2Nl c3MgJiYKPiArICAgICAgICAgKHZpby0+bW1pb19nbGEgPT0gKGRhZGRyICYgUEFHRV9NQVNLKSkg JiYKPiArICAgICAgICAgLyogU2VlIGNvbW1lbnQgYWJvdmUuICovCj4gKyAgICAgICAgICh2aW8t PmlvX3JlcS5zdGF0ZSA9PSBTVEFURV9JT1JFU1BfUkVBRFkgfHwKPiArICAgICAgICAgICgoIWRm IHx8ICpyZXBzID09IDEpICYmCj4gKyAgICAgICAgICAgUEFHRV9TSVpFIC0gKGRhZGRyICYgflBB R0VfTUFTSykgPj0gKnJlcHMgKiBieXRlc19wZXJfcmVwKSkgKQo+ICsgICAgICAgIGRncGEgPSBw Zm5fdG9fcGFkZHIodmlvLT5tbWlvX2dwZm4pIHwgKGRhZGRyICYgflBBR0VfTUFTSyk7Cj4gKyAg ICBlbHNlCj4gKyAgICB7Cj4gKyAgICAgICAgcmMgPSBodm1lbXVsX2xpbmVhcl90b19waHlzKGRh ZGRyLCAmZGdwYSwgYnl0ZXNfcGVyX3JlcCwgcmVwcywKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGZlYyB8IFBGRUNfd3JpdGVfYWNjZXNzLCBodm1lbXVsX2N0eHQpOwo+ ICsgICAgICAgIGlmICggcmMgIT0gWDg2RU1VTF9PS0FZICkKPiArICAgICAgICAgICAgcmV0dXJu IHJjOwo+ICsgICAgfQo+IAo+ICAgICAgLyogQ2hlY2sgZm9yIE1NSU8gb3BzICovCj4gICAgICAo dm9pZCkgZ2V0X2dmbl9xdWVyeV91bmxvY2tlZChjdXJyZW50LT5kb21haW4sIHNncGEgPj4gUEFH RV9TSElGVCwKPiAmc3AybXQpOwo+IEBAIC0xMTk4LDEyICsxMjI0LDE4IEBAIHN0YXRpYyBpbnQg aHZtZW11bF9yZXBfbW92cygKPiAgICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7 Cj4gCj4gICAgICBpZiAoIHNwMm10ID09IHAybV9tbWlvX2RtICkKPiArICAgIHsKPiArICAgICAg ICBsYXRjaF9saW5lYXJfdG9fcGh5cyh2aW8sIHNhZGRyLCBzZ3BhLCAwKTsKPiAgICAgICAgICBy ZXR1cm4gaHZtZW11bF9kb19tbWlvX2FkZHIoCj4gICAgICAgICAgICAgIHNncGEsIHJlcHMsIGJ5 dGVzX3Blcl9yZXAsIElPUkVRX1JFQUQsIGRmLCBkZ3BhKTsKPiArICAgIH0KPiAKPiAgICAgIGlm ICggZHAybXQgPT0gcDJtX21taW9fZG0gKQo+ICsgICAgewo+ICsgICAgICAgIGxhdGNoX2xpbmVh cl90b19waHlzKHZpbywgZGFkZHIsIGRncGEsIDEpOwo+ICAgICAgICAgIHJldHVybiBodm1lbXVs X2RvX21taW9fYWRkcigKPiAgICAgICAgICAgICAgZGdwYSwgcmVwcywgYnl0ZXNfcGVyX3JlcCwg SU9SRVFfV1JJVEUsIGRmLCBzZ3BhKTsKPiArICAgIH0KPiAKPiAgICAgIC8qIFJBTS10by1SQU0g Y29weTogZW11bGF0ZSBhcyBlcXVpdmFsZW50IG9mIG1lbW1vdmUoZGdwYSwgc2dwYSwKPiBieXRl cykuICovCj4gICAgICBieXRlcyA9ICpyZXBzICogYnl0ZXNfcGVyX3JlcDsKPiBAQCAtMTI3OSwy NSArMTMxMSwzNyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfcmVwX3N0b3MoCj4gIHsKPiAgICAgIHN0 cnVjdCBodm1fZW11bGF0ZV9jdHh0ICpodm1lbXVsX2N0eHQgPQo+ICAgICAgICAgIGNvbnRhaW5l cl9vZihjdHh0LCBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCwgY3R4dCk7Cj4gLSAgICB1bnNpZ25l ZCBsb25nIGFkZHI7Cj4gKyAgICBzdHJ1Y3QgaHZtX3ZjcHVfaW8gKnZpbyA9ICZjdXJyZW50LT5h cmNoLmh2bV92Y3B1Lmh2bV9pbzsKPiArICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgYnl0ZXM7Cj4g ICAgICBwYWRkcl90IGdwYTsKPiAgICAgIHAybV90eXBlX3QgcDJtdDsKPiAgICAgIGJvb2xfdCBk ZiA9ICEhKGN0eHQtPnJlZ3MtPmVmbGFncyAmIFg4Nl9FRkxBR1NfREYpOwo+ICAgICAgaW50IHJj ID0gaHZtZW11bF92aXJ0dWFsX3RvX2xpbmVhcihzZWcsIG9mZnNldCwgYnl0ZXNfcGVyX3JlcCwg cmVwcywKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHZtX2FjY2Vz c193cml0ZSwgaHZtZW11bF9jdHh0LCAmYWRkcik7Cj4gCj4gLSAgICBpZiAoIHJjID09IFg4NkVN VUxfT0tBWSApCj4gKyAgICBpZiAoIHJjICE9IFg4NkVNVUxfT0tBWSApCj4gKyAgICAgICAgcmV0 dXJuIHJjOwo+ICsKPiArICAgIGJ5dGVzID0gUEFHRV9TSVpFIC0gKGFkZHIgJiB+UEFHRV9NQVNL KTsKPiArICAgIGlmICggdmlvLT5tbWlvX2FjY2Vzcy53cml0ZV9hY2Nlc3MgJiYKPiArICAgICAg ICAgKHZpby0+bW1pb19nbGEgPT0gKGFkZHIgJiBQQUdFX01BU0spKSAmJgo+ICsgICAgICAgICAv KiBTZWUgcmVzcGVjdGl2ZSBjb21tZW50IGluIE1PVlMgcHJvY2Vzc2luZy4gKi8KPiArICAgICAg ICAgKHZpby0+aW9fcmVxLnN0YXRlID09IFNUQVRFX0lPUkVTUF9SRUFEWSB8fAo+ICsgICAgICAg ICAgKCghZGYgfHwgKnJlcHMgPT0gMSkgJiYKPiArICAgICAgICAgICBQQUdFX1NJWkUgLSAoYWRk ciAmIH5QQUdFX01BU0spID49ICpyZXBzICogYnl0ZXNfcGVyX3JlcCkpICkKPiArICAgICAgICBn cGEgPSBwZm5fdG9fcGFkZHIodmlvLT5tbWlvX2dwZm4pIHwgKGFkZHIgJiB+UEFHRV9NQVNLKTsK PiArICAgIGVsc2UKPiAgICAgIHsKPiAgICAgICAgICB1aW50MzJfdCBwZmVjID0gUEZFQ19wYWdl X3ByZXNlbnQgfCBQRkVDX3dyaXRlX2FjY2VzczsKPiAKPiAgICAgICAgICBpZiAoIGh2bWVtdWxf Y3R4dC0+c2VnX3JlZ1t4ODZfc2VnX3NzXS5hdHRyLmZpZWxkcy5kcGwgPT0gMyApCj4gICAgICAg ICAgICAgIHBmZWMgfD0gUEZFQ191c2VyX21vZGU7Cj4gCj4gLSAgICAgICAgcmMgPSBodm1lbXVs X2xpbmVhcl90b19waHlzKAo+IC0gICAgICAgICAgICBhZGRyLCAmZ3BhLCBieXRlc19wZXJfcmVw LCByZXBzLCBwZmVjLCBodm1lbXVsX2N0eHQpOwo+ICsgICAgICAgIHJjID0gaHZtZW11bF9saW5l YXJfdG9fcGh5cyhhZGRyLCAmZ3BhLCBieXRlc19wZXJfcmVwLCByZXBzLCBwZmVjLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodm1lbXVsX2N0eHQpOwo+ICsgICAgICAg IGlmICggcmMgIT0gWDg2RU1VTF9PS0FZICkKPiArICAgICAgICAgICAgcmV0dXJuIHJjOwo+ICAg ICAgfQo+IC0gICAgaWYgKCByYyAhPSBYODZFTVVMX09LQVkgKQo+IC0gICAgICAgIHJldHVybiBy YzsKPiAKPiAgICAgIC8qIENoZWNrIGZvciBNTUlPIG9wICovCj4gICAgICAodm9pZClnZXRfZ2Zu X3F1ZXJ5X3VubG9ja2VkKGN1cnJlbnQtPmRvbWFpbiwgZ3BhID4+IFBBR0VfU0hJRlQsCj4gJnAy bXQpOwo+IEBAIC0xMzcxLDYgKzE0MTUsNyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfcmVwX3N0b3Mo Cj4gICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwo+IAo+ICAgICAgY2FzZSBw Mm1fbW1pb19kbToKPiArICAgICAgICBsYXRjaF9saW5lYXJfdG9fcGh5cyh2aW8sIGFkZHIsIGdw YSwgMSk7Cj4gICAgICAgICAgcmV0dXJuIGh2bWVtdWxfZG9fbW1pb19idWZmZXIoZ3BhLCByZXBz LCBieXRlc19wZXJfcmVwLAo+IElPUkVRX1dSSVRFLCBkZiwKPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwX2RhdGEpOwo+ICAgICAgfQo+IAoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==