From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH] x86/hvm/dmop: Only copy what is needed to/from the guest Date: Fri, 9 Feb 2018 15:44:53 +0000 Message-ID: References: <20180209153427.6029-1-ross.lagerwall@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-GB List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Paul Durrant , Ross Lagerwall , "xen-devel@lists.xen.org" Cc: Jan Beulich List-Id: xen-devel@lists.xenproject.org T24gMDkvMDIvMTggMTU6NDIsIFBhdWwgRHVycmFudCB3cm90ZToKPj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0KPj4gRnJvbTogUm9zcyBMYWdlcndhbGwgW21haWx0bzpyb3NzLmxhZ2Vyd2Fs bEBjaXRyaXguY29tXQo+PiBTZW50OiAwOSBGZWJydWFyeSAyMDE4IDE1OjM0Cj4+IFRvOiB4ZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwo+PiBDYzogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxs QGNpdHJpeC5jb20+OyBKYW4gQmV1bGljaAo+PiA8amJldWxpY2hAc3VzZS5jb20+OyBBbmRyZXcg Q29vcGVyIDxBbmRyZXcuQ29vcGVyM0BjaXRyaXguY29tPjsgUGF1bAo+PiBEdXJyYW50IDxQYXVs LkR1cnJhbnRAY2l0cml4LmNvbT4KPj4gU3ViamVjdDogW1BBVENIXSB4ODYvaHZtL2Rtb3A6IE9u bHkgY29weSB3aGF0IGlzIG5lZWRlZCB0by9mcm9tIHRoZQo+PiBndWVzdAo+Pgo+PiBkbV9vcCgp IGZhaWxzIHdpdGggLUVGQVVMVCBpZiB0aGUgc3RydWN0IHhlbl9kbV9vcCBnaXZlbiBieSB0aGUg Z3Vlc3QgaXMKPj4gc21hbGxlciB0aGFuIFhlbidzIHN0cnVjdCB4ZW5fZG1fb3AuIFRoaXMgaXMg YSBwcm9ibGVtIGJlY2F1c2UgRE1PUCBpcwo+PiBtZWFudCB0byBiZSBhIHN0YWJsZSBBQkkgYnV0 IGl0IGJyZWFrcyB3aGVuZXZlciB0aGUgc2l6ZSBvZiBzdHJ1Y3QKPj4geGVuX2RtX29wIGNoYW5n ZXMuCj4+Cj4+IFRvIGZpeCB0aGlzLCBjaGFuZ2UgaG93IHRoZSBjb3B5aW5nIHRvIGFuZCBmcm9t IHRoZSBndWVzdCBpcyBkb25lLiBXaGVuCj4+IGNvcHlpbmcgZnJvbSB0aGUgZ3Vlc3QsIGZpcnN0 IGNvcHkgdGhlIGhlYWRlciBhbmQgaW5zcGVjdCB0aGUgb3AuIFRoZW4sCj4+IG9ubHkgY29weSB0 aGUgY29ycmVjdCBhbW91bnQgbmVlZGVkIGZvciB0aGF0IG9wLiBXaGVuIGNvcHlpbmcgdG8gdGhl Cj4+IGd1ZXN0LCBkb24ndCBjb3B5IHRoZSBoZWFkZXIuIFJhdGhlciwgY29weSBvbmx5IHRoZSBj b3JyZWN0IGFtb3VudAo+PiBuZWVkZWQgZm9yIHRoYXQgcGFydGljdWxhciBvcC4KPj4KPj4gU28g bm93IHRoZSBkbV9vcCgpIHdpbGwgZmFpbCBpZiB0aGUgZ3Vlc3QgZG9lcyBub3Qgc3VwcGx5IGVu b3VnaCBieXRlcwo+PiBmb3IgdGhlIHNwZWNpZmljIG9wLiBJdCB3aWxsIG5vdCBmYWlsIGlmIHRo ZSBndWVzdCBzdXBwbGllcyB0b28gbWFueQo+PiBieXRlcyBmb3IgdGhlIHNwZWNpZmljIG9wLCBi dXQgWGVuIHdpbGwgbm90IGNvcHkgdGhlIGV4dHJhIGJ5dGVzLgo+Pgo+PiBSZW1vdmUgc29tZSBu b3cgdW51c2VkIG1hY3JvcyBhbmQgaGVscGVyIGZ1bmN0aW9ucy4KPj4KPj4gU2lnbmVkLW9mZi1i eTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+Cj4gSSdtIHN1cmUg dGhhdCB3YXMgaG93IGl0IHdhcyBzdXBwb3NlZCB0byB3b3JrIG9yaWdpbmFsbHkgYnV0IGl0IGdv dCBsb3N0IHNvbWV3aGVyZSBhbG9uZyB0aGUgd2F5Lgo+Cj4gUmV2aWV3ZWQtYnk6IFBhdWwgRHVy cmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+LCB3aXRoIG9uZSBzdWdnZXN0aW9uLi4uCgpU aGlzIG5lZWRzIGJhY2twb3J0aW5nIHRvIDQuOSg/KSBhbmQgbGF0ZXIuCgo+Cj4+IC0tLQo+PiAg eGVuL2FyY2gveDg2L2h2bS9kbS5jIHwgNzggKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0KPj4gLS0tLS0tLS0tLQo+PiAgMSBmaWxlIGNoYW5nZWQsIDQyIGluc2VydGlv bnMoKyksIDM2IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2 bS9kbS5jIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCj4+IGluZGV4IDgwODNkZWQuLjZjNzI3NmMg MTAwNjQ0Cj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwo+PiArKysgYi94ZW4vYXJjaC94 ODYvaHZtL2RtLmMKPj4gQEAgLTU0LDQyICs1NCwxMCBAQCBzdGF0aWMgYm9vbCBfcmF3X2NvcHlf ZnJvbV9ndWVzdF9idWZfb2Zmc2V0KHZvaWQKPj4gKmRzdCwKPj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb2Zmc2V0X2J5dGVzLCBkc3RfYnl0ZXMpOwo+PiAgfQo+Pgo+PiAt c3RhdGljIGJvb2wgX3Jhd19jb3B5X3RvX2d1ZXN0X2J1Zl9vZmZzZXQoY29uc3Qgc3RydWN0IGRt b3BfYXJncyAqYXJncywKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBidWZfaWR4LAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZV90IG9mZnNldF9ieXRlcywKPj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKnNyYywKPj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzcmNfYnl0ZXMpCj4+IC17Cj4+ IC0gICAgc2l6ZV90IGJ1Zl9ieXRlczsKPj4gLQo+PiAtICAgIGlmICggYnVmX2lkeCA+PSBhcmdz LT5ucl9idWZzICkKPj4gLSAgICAgICAgcmV0dXJuIGZhbHNlOwo+PiAtCj4+IC0gICAgYnVmX2J5 dGVzID0gYXJncy0+YnVmW2J1Zl9pZHhdLnNpemU7Cj4+IC0KPj4gLQo+PiAtICAgIGlmICggKG9m ZnNldF9ieXRlcyArIHNyY19ieXRlcykgPCBvZmZzZXRfYnl0ZXMgfHwKPj4gLSAgICAgICAgIChv ZmZzZXRfYnl0ZXMgKyBzcmNfYnl0ZXMpID4gYnVmX2J5dGVzICkKPj4gLSAgICAgICAgcmV0dXJu IGZhbHNlOwo+PiAtCj4+IC0gICAgcmV0dXJuICFjb3B5X3RvX2d1ZXN0X29mZnNldChhcmdzLT5i dWZbYnVmX2lkeF0uaCwgb2Zmc2V0X2J5dGVzLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3JjLCBzcmNfYnl0ZXMpOwo+PiAtfQo+PiAtCj4+ICAjZGVmaW5lIENPUFlfRlJP TV9HVUVTVF9CVUZfT0ZGU0VUKGRzdCwgYnVmcywgYnVmX2lkeCwKPj4gb2Zmc2V0X2J5dGVzKSBc Cj4+ICAgICAgX3Jhd19jb3B5X2Zyb21fZ3Vlc3RfYnVmX29mZnNldCgmKGRzdCksIGJ1ZnMsIGJ1 Zl9pZHgsIG9mZnNldF9ieXRlcywgXAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mKGRzdCkpCj4+Cj4+IC0jZGVmaW5lIENPUFlfVE9fR1VFU1RfQlVGX09GRlNF VChidWZzLCBidWZfaWR4LCBvZmZzZXRfYnl0ZXMsIHNyYykgXAo+PiAtICAgIF9yYXdfY29weV90 b19ndWVzdF9idWZfb2Zmc2V0KGJ1ZnMsIGJ1Zl9pZHgsIG9mZnNldF9ieXRlcywgXAo+PiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYoc3JjKSwgc2l6ZW9mKHNyYykpCj4+IC0K Pj4gLSNkZWZpbmUgQ09QWV9GUk9NX0dVRVNUX0JVRihkc3QsIGJ1ZnMsIGJ1Zl9pZHgpIFwKPj4g LSAgICBDT1BZX0ZST01fR1VFU1RfQlVGX09GRlNFVChkc3QsIGJ1ZnMsIGJ1Zl9pZHgsIDApCj4+ IC0KPj4gLSNkZWZpbmUgQ09QWV9UT19HVUVTVF9CVUYoYnVmcywgYnVmX2lkeCwgc3JjKSBcCj4+ IC0gICAgQ09QWV9UT19HVUVTVF9CVUZfT0ZGU0VUKGJ1ZnMsIGJ1Zl9pZHgsIDAsIHNyYykKPj4g LQo+PiAgc3RhdGljIGludCB0cmFja19kaXJ0eV92cmFtKHN0cnVjdCBkb21haW4gKmQsIHhlbl9w Zm5fdCBmaXJzdF9wZm4sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IG5yLCBjb25zdCBzdHJ1Y3QgeGVuX2RtX29wX2J1ZiAqYnVmKQo+PiAgewo+PiBAQCAtMzcy LDYgKzM0MCwyOCBAQCBzdGF0aWMgaW50IGRtX29wKGNvbnN0IHN0cnVjdCBkbW9wX2FyZ3MgKm9w X2FyZ3MpCj4+ICAgICAgc3RydWN0IHhlbl9kbV9vcCBvcDsKPj4gICAgICBib29sIGNvbnN0X29w ID0gdHJ1ZTsKPj4gICAgICBsb25nIHJjOwo+PiArICAgIHNpemVfdCBvZmZzZXQ7Cj4+ICsKPj4g KyAgICBzdGF0aWMgY29uc3QgdWludDhfdCBvcF9zaXplW10gPSB7Cj4gR2l2ZW4gdGhlIGNvcnJl c3BvbmRlbmNlIGJldHdlZW4gdGhlIG9wIGNvZGUgbmFtZSBhbmQgdGhlIHN0cnVjdCBuYW1lLCBp dCBtaWdodCBiZSB3b3J0aCB1c2luZyBhIG1hY3JvIHRvIGhlbHAgd2l0aCB0aGlzIGFycmF5IGRl Y2xhcmF0aW9uLgoKVGhleSBhcmVuJ3QgYXMgMToxIGFzIHlvdSdkIGV4cGVjdCwgYW5kIG1peGlu ZyZtYXRjaGluZyBtYWNyb3MgaXMgZ29pbmcKdG8gYmUgZmFyIG1vcmUgb2JzY3VyZSB0byByZWFk IHRoYW4gdGhpcy4KCj4KPiAgIFBhdWwKPgo+PiArICAgICAgICBbWEVOX0RNT1BfY3JlYXRlX2lv cmVxX3NlcnZlcl0gICAgICAgICAgICAgID0gc2l6ZW9mKHN0cnVjdAo+PiB4ZW5fZG1fb3BfY3Jl YXRlX2lvcmVxX3NlcnZlciksCj4+ICsgICAgICAgIFtYRU5fRE1PUF9nZXRfaW9yZXFfc2VydmVy X2luZm9dICAgICAgICAgICAgPSBzaXplb2Yoc3RydWN0Cj4+IHhlbl9kbV9vcF9nZXRfaW9yZXFf c2VydmVyX2luZm8pLAo+PiArICAgICAgICBbWEVOX0RNT1BfbWFwX2lvX3JhbmdlX3RvX2lvcmVx X3NlcnZlcl0gICAgID0gc2l6ZW9mKHN0cnVjdAo+PiB4ZW5fZG1fb3BfaW9yZXFfc2VydmVyX3Jh bmdlKSwKPj4gKyAgICAgICAgW1hFTl9ETU9QX3VubWFwX2lvX3JhbmdlX2Zyb21faW9yZXFfc2Vy dmVyXSA9IHNpemVvZihzdHJ1Y3QKPj4geGVuX2RtX29wX2lvcmVxX3NlcnZlcl9yYW5nZSksCj4+ ICsgICAgICAgIFtYRU5fRE1PUF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlXSAgICAgICAgICAgPSBz aXplb2Yoc3RydWN0Cj4+IHhlbl9kbV9vcF9zZXRfaW9yZXFfc2VydmVyX3N0YXRlKSwKPj4gKyAg ICAgICAgW1hFTl9ETU9QX2Rlc3Ryb3lfaW9yZXFfc2VydmVyXSAgICAgICAgICAgICA9IHNpemVv ZihzdHJ1Y3QKPj4geGVuX2RtX29wX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKSwKPj4gKyAgICAgICAg W1hFTl9ETU9QX3RyYWNrX2RpcnR5X3ZyYW1dICAgICAgICAgICAgICAgICA9IHNpemVvZihzdHJ1 Y3QKPj4geGVuX2RtX29wX3RyYWNrX2RpcnR5X3ZyYW0pLAo+PiArICAgICAgICBbWEVOX0RNT1Bf c2V0X3BjaV9pbnR4X2xldmVsXSAgICAgICAgICAgICAgID0gc2l6ZW9mKHN0cnVjdAo+PiB4ZW5f ZG1fb3Bfc2V0X3BjaV9pbnR4X2xldmVsKSwKPj4gKyAgICAgICAgW1hFTl9ETU9QX3NldF9pc2Ff aXJxX2xldmVsXSAgICAgICAgICAgICAgICA9IHNpemVvZihzdHJ1Y3QKPj4geGVuX2RtX29wX3Nl dF9pc2FfaXJxX2xldmVsKSwKPj4gKyAgICAgICAgW1hFTl9ETU9QX3NldF9wY2lfbGlua19yb3V0 ZV0gICAgICAgICAgICAgICA9IHNpemVvZihzdHJ1Y3QKPj4geGVuX2RtX29wX3NldF9wY2lfbGlu a19yb3V0ZSksCj4+ICsgICAgICAgIFtYRU5fRE1PUF9tb2RpZmllZF9tZW1vcnldICAgICAgICAg ICAgICAgICAgPSBzaXplb2Yoc3RydWN0Cj4+IHhlbl9kbV9vcF9tb2RpZmllZF9tZW1vcnkpLAo+ PiArICAgICAgICBbWEVOX0RNT1Bfc2V0X21lbV90eXBlXSAgICAgICAgICAgICAgICAgICAgID0g c2l6ZW9mKHN0cnVjdAo+PiB4ZW5fZG1fb3Bfc2V0X21lbV90eXBlKSwKPj4gKyAgICAgICAgW1hF Tl9ETU9QX2luamVjdF9ldmVudF0gICAgICAgICAgICAgICAgICAgICA9IHNpemVvZihzdHJ1Y3QK Pj4geGVuX2RtX29wX2luamVjdF9ldmVudCksCj4+ICsgICAgICAgIFtYRU5fRE1PUF9pbmplY3Rf bXNpXSAgICAgICAgICAgICAgICAgICAgICAgPSBzaXplb2Yoc3RydWN0Cj4+IHhlbl9kbV9vcF9p bmplY3RfbXNpKSwKPj4gKyAgICAgICAgW1hFTl9ETU9QX21hcF9tZW1fdHlwZV90b19pb3JlcV9z ZXJ2ZXJdICAgICA9IHNpemVvZihzdHJ1Y3QKPj4geGVuX2RtX29wX21hcF9tZW1fdHlwZV90b19p b3JlcV9zZXJ2ZXIpLAo+PiArICAgICAgICBbWEVOX0RNT1BfcmVtb3RlX3NodXRkb3duXSAgICAg ICAgICAgICAgICAgID0gc2l6ZW9mKHN0cnVjdAo+PiB4ZW5fZG1fb3BfcmVtb3RlX3NodXRkb3du KSwKPj4gKyAgICAgICAgW1hFTl9ETU9QX3JlbG9jYXRlX21lbW9yeV0gICAgICAgICAgICAgICAg ICA9IHNpemVvZihzdHJ1Y3QKPj4geGVuX2RtX29wX3JlbG9jYXRlX21lbW9yeSksCj4+ICsgICAg ICAgIFtYRU5fRE1PUF9waW5fbWVtb3J5X2NhY2hlYXR0cl0gICAgICAgICAgICAgPSBzaXplb2Yo c3RydWN0Cj4+IHhlbl9kbV9vcF9waW5fbWVtb3J5X2NhY2hlYXR0ciksCj4+ICsgICAgfTsKPj4K Pj4gICAgICByYyA9IHJjdV9sb2NrX3JlbW90ZV9kb21haW5fYnlfaWQob3BfYXJncy0+ZG9taWQs ICZkKTsKPj4gICAgICBpZiAoIHJjICkKPj4gQEAgLTM4NCwxMiArMzc0LDI3IEBAIHN0YXRpYyBp bnQgZG1fb3AoY29uc3Qgc3RydWN0IGRtb3BfYXJncyAqb3BfYXJncykKPj4gICAgICBpZiAoIHJj ICkKPj4gICAgICAgICAgZ290byBvdXQ7Cj4+Cj4+IC0gICAgaWYgKCAhQ09QWV9GUk9NX0dVRVNU X0JVRihvcCwgb3BfYXJncywgMCkgKQo+PiAtICAgIHsKPj4gLSAgICAgICAgcmMgPSAtRUZBVUxU Owo+PiArICAgIG9mZnNldCA9IG9mZnNldG9mKHN0cnVjdCB4ZW5fZG1fb3AsIHUpOwo+PiArCj4+ ICsgICAgcmMgPSAtRUZBVUxUOwo+PiArICAgIGlmICggb3BfYXJncy0+YnVmWzBdLnNpemUgPCBv ZmZzZXQgKQo+PiArICAgICAgICBnb3RvIG91dDsKPj4gKwo+PiArICAgIGlmICggY29weV9mcm9t X2d1ZXN0X29mZnNldCgodm9pZCAqKSZvcCwgb3BfYXJncy0+YnVmWzBdLmgsIDAsIG9mZnNldCkg KQo+PiArICAgICAgICBnb3RvIG91dDsKPj4gKwo+PiArICAgIGlmICggb3Aub3AgPj0gQVJSQVlf U0laRShvcF9zaXplKSApIHsKClN0eWxlLCB3aGljaCBjYW4gYmUgZml4ZWQgb24gY29tbWl0LsKg IE90aGVyd2lzZSwgQWNrZWQtYnk6IEFuZHJldyBDb29wZXIKPGFuZHJldy5jb29wZXIzQGNpdHJp eC5jb20+Cgo+PiArICAgICAgICByYyA9IC1FT1BOT1RTVVBQOwo+PiAgICAgICAgICBnb3RvIG91 dDsKPj4gICAgICB9Cj4+Cj4+ICsgICAgaWYgKCBvcF9hcmdzLT5idWZbMF0uc2l6ZSA8IG9mZnNl dCArIG9wX3NpemVbb3Aub3BdICkKPj4gKyAgICAgICAgZ290byBvdXQ7Cj4+ICsKPj4gKyAgICBp ZiAoIGNvcHlfZnJvbV9ndWVzdF9vZmZzZXQoKHZvaWQgKikmb3AudSwgb3BfYXJncy0+YnVmWzBd LmgsIG9mZnNldCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bfc2l6ZVtv cC5vcF0pICkKPj4gKyAgICAgICAgZ290byBvdXQ7Cj4+ICsKPj4gICAgICByYyA9IC1FSU5WQUw7 Cj4+ICAgICAgaWYgKCBvcC5wYWQgKQo+PiAgICAgICAgICBnb3RvIG91dDsKPj4gQEAgLTY5NCw3 ICs2OTksOCBAQCBzdGF0aWMgaW50IGRtX29wKGNvbnN0IHN0cnVjdCBkbW9wX2FyZ3MgKm9wX2Fy Z3MpCj4+ICAgICAgfQo+Pgo+PiAgICAgIGlmICggKCFyYyB8fCByYyA9PSAtRVJFU1RBUlQpICYm Cj4+IC0gICAgICAgICAhY29uc3Rfb3AgJiYgIUNPUFlfVE9fR1VFU1RfQlVGKG9wX2FyZ3MsIDAs IG9wKSApCj4+ICsgICAgICAgICAhY29uc3Rfb3AgJiYgY29weV90b19ndWVzdF9vZmZzZXQob3Bf YXJncy0+YnVmWzBdLmgsIG9mZnNldCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAodm9pZCAqKSZvcC51LCBvcF9zaXplW29wLm9wXSkgKQo+PiAgICAgICAg ICByYyA9IC1FRkFVTFQ7Cj4+Cj4+ICAgb3V0Ogo+PiAtLQo+PiAyLjkuNQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=