From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH] x86/hvm/dmop: Only copy what is needed to/from the guest Date: Fri, 9 Feb 2018 15:42:06 +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: <20180209153427.6029-1-ross.lagerwall@citrix.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: "xen-devel@lists.xen.org" Cc: Ross Lagerwall , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IFJvc3MgTGFnZXJ3YWxsIFttYWls dG86cm9zcy5sYWdlcndhbGxAY2l0cml4LmNvbV0KPiBTZW50OiAwOSBGZWJydWFyeSAyMDE4IDE1 OjM0Cj4gVG86IHhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCj4gQ2M6IFJvc3MgTGFnZXJ3YWxsIDxy b3NzLmxhZ2Vyd2FsbEBjaXRyaXguY29tPjsgSmFuIEJldWxpY2gKPiA8amJldWxpY2hAc3VzZS5j b20+OyBBbmRyZXcgQ29vcGVyIDxBbmRyZXcuQ29vcGVyM0BjaXRyaXguY29tPjsgUGF1bAo+IER1 cnJhbnQgPFBhdWwuRHVycmFudEBjaXRyaXguY29tPgo+IFN1YmplY3Q6IFtQQVRDSF0geDg2L2h2 bS9kbW9wOiBPbmx5IGNvcHkgd2hhdCBpcyBuZWVkZWQgdG8vZnJvbSB0aGUKPiBndWVzdAo+IAo+ IGRtX29wKCkgZmFpbHMgd2l0aCAtRUZBVUxUIGlmIHRoZSBzdHJ1Y3QgeGVuX2RtX29wIGdpdmVu IGJ5IHRoZSBndWVzdCBpcwo+IHNtYWxsZXIgdGhhbiBYZW4ncyBzdHJ1Y3QgeGVuX2RtX29wLiBU aGlzIGlzIGEgcHJvYmxlbSBiZWNhdXNlIERNT1AgaXMKPiBtZWFudCB0byBiZSBhIHN0YWJsZSBB QkkgYnV0IGl0IGJyZWFrcyB3aGVuZXZlciB0aGUgc2l6ZSBvZiBzdHJ1Y3QKPiB4ZW5fZG1fb3Ag Y2hhbmdlcy4KPiAKPiBUbyBmaXggdGhpcywgY2hhbmdlIGhvdyB0aGUgY29weWluZyB0byBhbmQg ZnJvbSB0aGUgZ3Vlc3QgaXMgZG9uZS4gV2hlbgo+IGNvcHlpbmcgZnJvbSB0aGUgZ3Vlc3QsIGZp cnN0IGNvcHkgdGhlIGhlYWRlciBhbmQgaW5zcGVjdCB0aGUgb3AuIFRoZW4sCj4gb25seSBjb3B5 IHRoZSBjb3JyZWN0IGFtb3VudCBuZWVkZWQgZm9yIHRoYXQgb3AuIFdoZW4gY29weWluZyB0byB0 aGUKPiBndWVzdCwgZG9uJ3QgY29weSB0aGUgaGVhZGVyLiBSYXRoZXIsIGNvcHkgb25seSB0aGUg Y29ycmVjdCBhbW91bnQKPiBuZWVkZWQgZm9yIHRoYXQgcGFydGljdWxhciBvcC4KPiAKPiBTbyBu b3cgdGhlIGRtX29wKCkgd2lsbCBmYWlsIGlmIHRoZSBndWVzdCBkb2VzIG5vdCBzdXBwbHkgZW5v dWdoIGJ5dGVzCj4gZm9yIHRoZSBzcGVjaWZpYyBvcC4gSXQgd2lsbCBub3QgZmFpbCBpZiB0aGUg Z3Vlc3Qgc3VwcGxpZXMgdG9vIG1hbnkKPiBieXRlcyBmb3IgdGhlIHNwZWNpZmljIG9wLCBidXQg WGVuIHdpbGwgbm90IGNvcHkgdGhlIGV4dHJhIGJ5dGVzLgo+IAo+IFJlbW92ZSBzb21lIG5vdyB1 bnVzZWQgbWFjcm9zIGFuZCBoZWxwZXIgZnVuY3Rpb25zLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFJv c3MgTGFnZXJ3YWxsIDxyb3NzLmxhZ2Vyd2FsbEBjaXRyaXguY29tPgoKSSdtIHN1cmUgdGhhdCB3 YXMgaG93IGl0IHdhcyBzdXBwb3NlZCB0byB3b3JrIG9yaWdpbmFsbHkgYnV0IGl0IGdvdCBsb3N0 IHNvbWV3aGVyZSBhbG9uZyB0aGUgd2F5LgoKUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1 bC5kdXJyYW50QGNpdHJpeC5jb20+LCB3aXRoIG9uZSBzdWdnZXN0aW9uLi4uCgo+IC0tLQo+ICB4 ZW4vYXJjaC94ODYvaHZtL2RtLmMgfCA3OCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLQo+IC0tLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDQyIGluc2VydGlvbnMo KyksIDM2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2Rt LmMgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKPiBpbmRleCA4MDgzZGVkLi42YzcyNzZjIDEwMDY0 NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0v ZG0uYwo+IEBAIC01NCw0MiArNTQsMTAgQEAgc3RhdGljIGJvb2wgX3Jhd19jb3B5X2Zyb21fZ3Vl c3RfYnVmX29mZnNldCh2b2lkCj4gKmRzdCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvZmZzZXRfYnl0ZXMsIGRzdF9ieXRlcyk7Cj4gIH0KPiAKPiAtc3RhdGljIGJvb2wg X3Jhd19jb3B5X3RvX2d1ZXN0X2J1Zl9vZmZzZXQoY29uc3Qgc3RydWN0IGRtb3BfYXJncyAqYXJn cywKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IGJ1Zl9pZHgsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNpemVfdCBvZmZzZXRfYnl0ZXMsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHZvaWQgKnNyYywKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZV90IHNyY19ieXRlcykKPiAtewo+IC0gICAgc2l6ZV90IGJ1Zl9i eXRlczsKPiAtCj4gLSAgICBpZiAoIGJ1Zl9pZHggPj0gYXJncy0+bnJfYnVmcyApCj4gLSAgICAg ICAgcmV0dXJuIGZhbHNlOwo+IC0KPiAtICAgIGJ1Zl9ieXRlcyA9IGFyZ3MtPmJ1ZltidWZfaWR4 XS5zaXplOwo+IC0KPiAtCj4gLSAgICBpZiAoIChvZmZzZXRfYnl0ZXMgKyBzcmNfYnl0ZXMpIDwg b2Zmc2V0X2J5dGVzIHx8Cj4gLSAgICAgICAgIChvZmZzZXRfYnl0ZXMgKyBzcmNfYnl0ZXMpID4g YnVmX2J5dGVzICkKPiAtICAgICAgICByZXR1cm4gZmFsc2U7Cj4gLQo+IC0gICAgcmV0dXJuICFj b3B5X3RvX2d1ZXN0X29mZnNldChhcmdzLT5idWZbYnVmX2lkeF0uaCwgb2Zmc2V0X2J5dGVzLAo+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMsIHNyY19ieXRlcyk7Cj4gLX0K PiAtCj4gICNkZWZpbmUgQ09QWV9GUk9NX0dVRVNUX0JVRl9PRkZTRVQoZHN0LCBidWZzLCBidWZf aWR4LAo+IG9mZnNldF9ieXRlcykgXAo+ICAgICAgX3Jhd19jb3B5X2Zyb21fZ3Vlc3RfYnVmX29m ZnNldCgmKGRzdCksIGJ1ZnMsIGJ1Zl9pZHgsIG9mZnNldF9ieXRlcywgXAo+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoZHN0KSkKPiAKPiAtI2RlZmluZSBDT1BZ X1RPX0dVRVNUX0JVRl9PRkZTRVQoYnVmcywgYnVmX2lkeCwgb2Zmc2V0X2J5dGVzLCBzcmMpIFwK PiAtICAgIF9yYXdfY29weV90b19ndWVzdF9idWZfb2Zmc2V0KGJ1ZnMsIGJ1Zl9pZHgsIG9mZnNl dF9ieXRlcywgXAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJihzcmMpLCBz aXplb2Yoc3JjKSkKPiAtCj4gLSNkZWZpbmUgQ09QWV9GUk9NX0dVRVNUX0JVRihkc3QsIGJ1ZnMs IGJ1Zl9pZHgpIFwKPiAtICAgIENPUFlfRlJPTV9HVUVTVF9CVUZfT0ZGU0VUKGRzdCwgYnVmcywg YnVmX2lkeCwgMCkKPiAtCj4gLSNkZWZpbmUgQ09QWV9UT19HVUVTVF9CVUYoYnVmcywgYnVmX2lk eCwgc3JjKSBcCj4gLSAgICBDT1BZX1RPX0dVRVNUX0JVRl9PRkZTRVQoYnVmcywgYnVmX2lkeCwg MCwgc3JjKQo+IC0KPiAgc3RhdGljIGludCB0cmFja19kaXJ0eV92cmFtKHN0cnVjdCBkb21haW4g KmQsIHhlbl9wZm5fdCBmaXJzdF9wZm4sCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgbnIsIGNvbnN0IHN0cnVjdCB4ZW5fZG1fb3BfYnVmICpidWYpCj4gIHsKPiBA QCAtMzcyLDYgKzM0MCwyOCBAQCBzdGF0aWMgaW50IGRtX29wKGNvbnN0IHN0cnVjdCBkbW9wX2Fy Z3MgKm9wX2FyZ3MpCj4gICAgICBzdHJ1Y3QgeGVuX2RtX29wIG9wOwo+ICAgICAgYm9vbCBjb25z dF9vcCA9IHRydWU7Cj4gICAgICBsb25nIHJjOwo+ICsgICAgc2l6ZV90IG9mZnNldDsKPiArCj4g KyAgICBzdGF0aWMgY29uc3QgdWludDhfdCBvcF9zaXplW10gPSB7CgpHaXZlbiB0aGUgY29ycmVz cG9uZGVuY2UgYmV0d2VlbiB0aGUgb3AgY29kZSBuYW1lIGFuZCB0aGUgc3RydWN0IG5hbWUsIGl0 IG1pZ2h0IGJlIHdvcnRoIHVzaW5nIGEgbWFjcm8gdG8gaGVscCB3aXRoIHRoaXMgYXJyYXkgZGVj bGFyYXRpb24uCgogIFBhdWwKCj4gKyAgICAgICAgW1hFTl9ETU9QX2NyZWF0ZV9pb3JlcV9zZXJ2 ZXJdICAgICAgICAgICAgICA9IHNpemVvZihzdHJ1Y3QKPiB4ZW5fZG1fb3BfY3JlYXRlX2lvcmVx X3NlcnZlciksCj4gKyAgICAgICAgW1hFTl9ETU9QX2dldF9pb3JlcV9zZXJ2ZXJfaW5mb10gICAg ICAgICAgICA9IHNpemVvZihzdHJ1Y3QKPiB4ZW5fZG1fb3BfZ2V0X2lvcmVxX3NlcnZlcl9pbmZv KSwKPiArICAgICAgICBbWEVOX0RNT1BfbWFwX2lvX3JhbmdlX3RvX2lvcmVxX3NlcnZlcl0gICAg ID0gc2l6ZW9mKHN0cnVjdAo+IHhlbl9kbV9vcF9pb3JlcV9zZXJ2ZXJfcmFuZ2UpLAo+ICsgICAg ICAgIFtYRU5fRE1PUF91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVxX3NlcnZlcl0gPSBzaXplb2Yo c3RydWN0Cj4geGVuX2RtX29wX2lvcmVxX3NlcnZlcl9yYW5nZSksCj4gKyAgICAgICAgW1hFTl9E TU9QX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGVdICAgICAgICAgICA9IHNpemVvZihzdHJ1Y3QKPiB4 ZW5fZG1fb3Bfc2V0X2lvcmVxX3NlcnZlcl9zdGF0ZSksCj4gKyAgICAgICAgW1hFTl9ETU9QX2Rl c3Ryb3lfaW9yZXFfc2VydmVyXSAgICAgICAgICAgICA9IHNpemVvZihzdHJ1Y3QKPiB4ZW5fZG1f b3BfZGVzdHJveV9pb3JlcV9zZXJ2ZXIpLAo+ICsgICAgICAgIFtYRU5fRE1PUF90cmFja19kaXJ0 eV92cmFtXSAgICAgICAgICAgICAgICAgPSBzaXplb2Yoc3RydWN0Cj4geGVuX2RtX29wX3RyYWNr X2RpcnR5X3ZyYW0pLAo+ICsgICAgICAgIFtYRU5fRE1PUF9zZXRfcGNpX2ludHhfbGV2ZWxdICAg ICAgICAgICAgICAgPSBzaXplb2Yoc3RydWN0Cj4geGVuX2RtX29wX3NldF9wY2lfaW50eF9sZXZl bCksCj4gKyAgICAgICAgW1hFTl9ETU9QX3NldF9pc2FfaXJxX2xldmVsXSAgICAgICAgICAgICAg ICA9IHNpemVvZihzdHJ1Y3QKPiB4ZW5fZG1fb3Bfc2V0X2lzYV9pcnFfbGV2ZWwpLAo+ICsgICAg ICAgIFtYRU5fRE1PUF9zZXRfcGNpX2xpbmtfcm91dGVdICAgICAgICAgICAgICAgPSBzaXplb2Yo c3RydWN0Cj4geGVuX2RtX29wX3NldF9wY2lfbGlua19yb3V0ZSksCj4gKyAgICAgICAgW1hFTl9E TU9QX21vZGlmaWVkX21lbW9yeV0gICAgICAgICAgICAgICAgICA9IHNpemVvZihzdHJ1Y3QKPiB4 ZW5fZG1fb3BfbW9kaWZpZWRfbWVtb3J5KSwKPiArICAgICAgICBbWEVOX0RNT1Bfc2V0X21lbV90 eXBlXSAgICAgICAgICAgICAgICAgICAgID0gc2l6ZW9mKHN0cnVjdAo+IHhlbl9kbV9vcF9zZXRf bWVtX3R5cGUpLAo+ICsgICAgICAgIFtYRU5fRE1PUF9pbmplY3RfZXZlbnRdICAgICAgICAgICAg ICAgICAgICAgPSBzaXplb2Yoc3RydWN0Cj4geGVuX2RtX29wX2luamVjdF9ldmVudCksCj4gKyAg ICAgICAgW1hFTl9ETU9QX2luamVjdF9tc2ldICAgICAgICAgICAgICAgICAgICAgICA9IHNpemVv ZihzdHJ1Y3QKPiB4ZW5fZG1fb3BfaW5qZWN0X21zaSksCj4gKyAgICAgICAgW1hFTl9ETU9QX21h cF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXJdICAgICA9IHNpemVvZihzdHJ1Y3QKPiB4ZW5fZG1f b3BfbWFwX21lbV90eXBlX3RvX2lvcmVxX3NlcnZlciksCj4gKyAgICAgICAgW1hFTl9ETU9QX3Jl bW90ZV9zaHV0ZG93bl0gICAgICAgICAgICAgICAgICA9IHNpemVvZihzdHJ1Y3QKPiB4ZW5fZG1f b3BfcmVtb3RlX3NodXRkb3duKSwKPiArICAgICAgICBbWEVOX0RNT1BfcmVsb2NhdGVfbWVtb3J5 XSAgICAgICAgICAgICAgICAgID0gc2l6ZW9mKHN0cnVjdAo+IHhlbl9kbV9vcF9yZWxvY2F0ZV9t ZW1vcnkpLAo+ICsgICAgICAgIFtYRU5fRE1PUF9waW5fbWVtb3J5X2NhY2hlYXR0cl0gICAgICAg ICAgICAgPSBzaXplb2Yoc3RydWN0Cj4geGVuX2RtX29wX3Bpbl9tZW1vcnlfY2FjaGVhdHRyKSwK PiArICAgIH07Cj4gCj4gICAgICByYyA9IHJjdV9sb2NrX3JlbW90ZV9kb21haW5fYnlfaWQob3Bf YXJncy0+ZG9taWQsICZkKTsKPiAgICAgIGlmICggcmMgKQo+IEBAIC0zODQsMTIgKzM3NCwyNyBA QCBzdGF0aWMgaW50IGRtX29wKGNvbnN0IHN0cnVjdCBkbW9wX2FyZ3MgKm9wX2FyZ3MpCj4gICAg ICBpZiAoIHJjICkKPiAgICAgICAgICBnb3RvIG91dDsKPiAKPiAtICAgIGlmICggIUNPUFlfRlJP TV9HVUVTVF9CVUYob3AsIG9wX2FyZ3MsIDApICkKPiAtICAgIHsKPiAtICAgICAgICByYyA9IC1F RkFVTFQ7Cj4gKyAgICBvZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgeGVuX2RtX29wLCB1KTsKPiAr Cj4gKyAgICByYyA9IC1FRkFVTFQ7Cj4gKyAgICBpZiAoIG9wX2FyZ3MtPmJ1ZlswXS5zaXplIDwg b2Zmc2V0ICkKPiArICAgICAgICBnb3RvIG91dDsKPiArCj4gKyAgICBpZiAoIGNvcHlfZnJvbV9n dWVzdF9vZmZzZXQoKHZvaWQgKikmb3AsIG9wX2FyZ3MtPmJ1ZlswXS5oLCAwLCBvZmZzZXQpICkK PiArICAgICAgICBnb3RvIG91dDsKPiArCj4gKyAgICBpZiAoIG9wLm9wID49IEFSUkFZX1NJWkUo b3Bfc2l6ZSkgKSB7Cj4gKyAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKPiAgICAgICAgICBnb3Rv IG91dDsKPiAgICAgIH0KPiAKPiArICAgIGlmICggb3BfYXJncy0+YnVmWzBdLnNpemUgPCBvZmZz ZXQgKyBvcF9zaXplW29wLm9wXSApCj4gKyAgICAgICAgZ290byBvdXQ7Cj4gKwo+ICsgICAgaWYg KCBjb3B5X2Zyb21fZ3Vlc3Rfb2Zmc2V0KCh2b2lkICopJm9wLnUsIG9wX2FyZ3MtPmJ1ZlswXS5o LCBvZmZzZXQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bfc2l6ZVtvcC5v cF0pICkKPiArICAgICAgICBnb3RvIG91dDsKPiArCj4gICAgICByYyA9IC1FSU5WQUw7Cj4gICAg ICBpZiAoIG9wLnBhZCApCj4gICAgICAgICAgZ290byBvdXQ7Cj4gQEAgLTY5NCw3ICs2OTksOCBA QCBzdGF0aWMgaW50IGRtX29wKGNvbnN0IHN0cnVjdCBkbW9wX2FyZ3MgKm9wX2FyZ3MpCj4gICAg ICB9Cj4gCj4gICAgICBpZiAoICghcmMgfHwgcmMgPT0gLUVSRVNUQVJUKSAmJgo+IC0gICAgICAg ICAhY29uc3Rfb3AgJiYgIUNPUFlfVE9fR1VFU1RfQlVGKG9wX2FyZ3MsIDAsIG9wKSApCj4gKyAg ICAgICAgICFjb25zdF9vcCAmJiBjb3B5X3RvX2d1ZXN0X29mZnNldChvcF9hcmdzLT5idWZbMF0u aCwgb2Zmc2V0LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHZvaWQgKikmb3AudSwgb3Bfc2l6ZVtvcC5vcF0pICkKPiAgICAgICAgICByYyA9IC1FRkFVTFQ7 Cj4gCj4gICBvdXQ6Cj4gLS0KPiAyLjkuNQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0 aW5mby94ZW4tZGV2ZWw=