From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: Re: [PATCH v15 04/11] x86/hvm/ioreq: defer mapping gfns until they are actually requsted Date: Fri, 15 Dec 2017 08:50:19 +0800 Message-ID: <20171215005018.GA23164@op-computing> References: <20171214174144.27852-1-paul.durrant@citrix.com> <20171214174144.27852-5-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ePkny-0000Ux-KX for xen-devel@lists.xenproject.org; Fri, 15 Dec 2017 07:53:14 +0000 Content-Disposition: inline In-Reply-To: <20171214174144.27852-5-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Paul Durrant Cc: Stefano Stabellini , George Dunlap , Ian Jackson , Tim Deegan , Andrew Cooper , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBEZWMgMTQsIDIwMTcgYXQgMDU6NDE6MzdQTSArMDAwMCwgUGF1bCBEdXJyYW50IHdy b3RlOgo+QSBzdWJzZXF1ZW50IHBhdGNoIHdpbGwgaW50cm9kdWNlIGEgbmV3IHNjaGVtZSB0byBh bGxvdyBhbiBlbXVsYXRvciB0bwo+bWFwIGlvcmVxIHNlcnZlciBwYWdlcyBkaXJlY3RseSBmcm9t IFhlbiByYXRoZXIgdGhhbiB0aGUgZ3Vlc3QgUDJNLgo+Cj5UaGlzIHBhdGNoIGxheXMgdGhlIGdy b3VuZHdvcmsgZm9yIHRoYXQgY2hhbmdlIGJ5IGRlZmVycmluZyBtYXBwaW5nIG9mCj5nZm5zIHVu dGlsIHRoZWlyIHZhbHVlcyBhcmUgcmVxdWVzdGVkIGJ5IGFuIGVtdWxhdG9yLiBUbyB0aGF0IGVu ZCwgdGhlCj5wYWQgZmllbGQgb2YgdGhlIHhlbl9kbV9vcF9nZXRfaW9yZXFfc2VydmVyX2luZm8g c3RydWN0dXJlIGlzIHJlLXB1cnBvc2VkCj50byBhIGZsYWdzIGZpZWxkIGFuZCBuZXcgZmxhZywg WEVOX0RNT1Bfbm9fZ2ZucywgZGVmaW5lZCB3aGljaCBtb2RpZmllcyB0aGUKPmJlaGF2aW91ciBv ZiBYRU5fRE1PUF9nZXRfaW9yZXFfc2VydmVyX2luZm8gdG8gYWxsb3cgdGhlIGNhbGxlciB0byBh dm9pZAo+cmVxdWVzdGluZyB0aGUgZ2ZuIHZhbHVlcy4KPgo+U2lnbmVkLW9mZi1ieTogUGF1bCBE dXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KPlJldmlld2VkLWJ5OiBSb2dlciBQYXUg TW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KPkFja2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1 MkBjaXRyaXguY29tPgo+UmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KPi0tLQo+Q2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgo+Q2M6 IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Cj5DYzogR2VvcmdlIER1 bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgo+Q2M6IEtvbnJhZCBSemVzenV0ZWsg V2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KPkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNz dGFiZWxsaW5pQGtlcm5lbC5vcmc+Cj5DYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+Cj4KPnY4 Ogo+IC0gRm9yIHNhZmV0eSBtYWtlIGFsbCBvZiB0aGUgcG9pbnRlcnMgcGFzc2VkIHRvCj4gICBo dm1fZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKCkgb3B0aW9uYWwuCj4gLSBTaHJpbmsgYnVmaW9yZXFf aGFuZGxpbmcgZG93biB0byBhIHVpbnQ4X3QuCj4KPnYzOgo+IC0gVXBkYXRlZCBpbiByZXNwb25z ZSB0byByZXZpZXcgY29tbWVudHMgZnJvbSBXZWkgYW5kIFJvZ2VyLgo+IC0gQWRkZWQgYSBIQU5E TEVfQlVGSU9SRVEgbWFjcm8gdG8gbWFrZSB0aGUgY29kZSBuZWF0ZXIuCj4gLSBUaGlzIHBhdGNo IG5vIGxvbmdlciBpbnRyb2R1Y2VzIGEgc2VjdXJpdHkgdnVsbmVyYWJpbGl0eSBzaW5jZSB0aGVy ZQo+ICAgaXMgbm93IGFuIGV4cGxpY2l0IGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgaW9yZXEgc2Vy dmVycyB0aGF0IG1heSBiZQo+ICAgY3JlYXRlZCBmb3IgYW55IG9uZSBkb21haW4uCj4tLS0KPiB0 b29scy9saWJzL2RldmljZW1vZGVsL2NvcmUuYyAgICAgICAgICAgICAgICAgICB8ICA4ICsrKysr Cj4gdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9pbmNsdWRlL3hlbmRldmljZW1vZGVsLmggfCAgNiAr Ky0tCj4geGVuL2FyY2gveDg2L2h2bS9kbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg OSArKystLQo+IHhlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyAgICAgICAgICAgICAgICAgICAgICAg IHwgNDcgKysrKysrKysrKysrKystLS0tLS0tLS0tLQo+IHhlbi9pbmNsdWRlL2FzbS14ODYvaHZt L2RvbWFpbi5oICAgICAgICAgICAgICAgIHwgIDIgKy0KPiB4ZW4vaW5jbHVkZS9wdWJsaWMvaHZt L2RtX29wLmggICAgICAgICAgICAgICAgICB8IDMyICsrKysrKysrKystLS0tLS0tCj4gNiBmaWxl cyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKPgo+ZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwvY29yZS5jIGIvdG9vbHMvbGlicy9kZXZpY2Vtb2Rl bC9jb3JlLmMKPmluZGV4IDM1NWI3ZGVjMTguLmRmMmE4YTBmZTcgMTAwNjQ0Cj4tLS0gYS90b29s cy9saWJzL2RldmljZW1vZGVsL2NvcmUuYwo+KysrIGIvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9j b3JlLmMKPkBAIC0yMDQsNiArMjA0LDE0IEBAIGludCB4ZW5kZXZpY2Vtb2RlbF9nZXRfaW9yZXFf c2VydmVyX2luZm8oCj4gCj4gICAgIGRhdGEtPmlkID0gaWQ7Cj4gCj4rICAgIC8qCj4rICAgICAq IElmIHRoZSBjYWxsZXIgaXMgbm90IHJlcXVlc3RpbmcgZ2ZuIHZhbHVlcyB0aGVuIGluc3RydWN0 IHRoZQo+KyAgICAgKiBoeXBlcmNhbGwgbm90IHRvIHJldHJpZXZlIHRoZW0gYXMgdGhpcyBtYXkg Y2F1c2UgdGhlbSB0byBiZQo+KyAgICAgKiBtYXBwZWQuCj4rICAgICAqLwo+KyAgICBpZiAoIWlv cmVxX2dmbiAmJiAhYnVmaW9yZXFfZ2ZuKQo+KyAgICAgICAgZGF0YS0+ZmxhZ3MgfD0gWEVOX0RN T1Bfbm9fZ2ZuczsKPisKPiAgICAgcmMgPSB4ZW5kZXZpY2Vtb2RlbF9vcChkbW9kLCBkb21pZCwg MSwgJm9wLCBzaXplb2Yob3ApKTsKPiAgICAgaWYgKHJjKQo+ICAgICAgICAgcmV0dXJuIHJjOwo+ ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnMvZGV2aWNlbW9kZWwvaW5jbHVkZS94ZW5kZXZpY2Vtb2Rl bC5oIGIvdG9vbHMvbGlicy9kZXZpY2Vtb2RlbC9pbmNsdWRlL3hlbmRldmljZW1vZGVsLmgKPmlu ZGV4IGRkYTBiYzc2OTUuLmZmZmVlM2E0YTAgMTAwNjQ0Cj4tLS0gYS90b29scy9saWJzL2Rldmlj ZW1vZGVsL2luY2x1ZGUveGVuZGV2aWNlbW9kZWwuaAo+KysrIGIvdG9vbHMvbGlicy9kZXZpY2Vt b2RlbC9pbmNsdWRlL3hlbmRldmljZW1vZGVsLmgKPkBAIC02MSwxMSArNjEsMTEgQEAgaW50IHhl bmRldmljZW1vZGVsX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIoCj4gICogQHBhcm0gZG9taWQgdGhlIGRv bWFpbiBpZCB0byBiZSBzZXJ2aWNlZAo+ICAqIEBwYXJtIGlkIHRoZSBJT1JFUSBTZXJ2ZXIgaWQu Cj4gICogQHBhcm0gaW9yZXFfZ2ZuIHBvaW50ZXIgdG8gYSB4ZW5fcGZuX3QgdG8gcmVjZWl2ZSB0 aGUgc3luY2hyb25vdXMgaW9yZXEKPi0gKiAgICAgICAgICAgICAgICAgIGdmbgo+KyAqICAgICAg ICAgICAgICAgICAgZ2ZuLiAoTWF5IGJlIE5VTEwgaWYgbm90IHJlcXVpcmVkKQo+ICAqIEBwYXJt IGJ1ZmlvcmVxX2dmbiBwb2ludGVyIHRvIGEgeGVuX3Bmbl90IHRvIHJlY2VpdmUgdGhlIGJ1ZmZl cmVkIGlvcmVxCj4tICogICAgICAgICAgICAgICAgICAgIGdmbgo+KyAqICAgICAgICAgICAgICAg ICAgICBnZm4uIChNYXkgYmUgTlVMTCBpZiBub3QgcmVxdWlyZWQpCj4gICogQHBhcm0gYnVmaW9y ZXFfcG9ydCBwb2ludGVyIHRvIGEgZXZ0Y2huX3BvcnRfdCB0byByZWNlaXZlIHRoZSBidWZmZXJl ZAo+LSAqICAgICAgICAgICAgICAgICAgICAgaW9yZXEgZXZlbnQgY2hhbm5lbAo+KyAqICAgICAg ICAgICAgICAgICAgICAgaW9yZXEgZXZlbnQgY2hhbm5lbC4gKE1heSBiZSBOVUxMIGlmIG5vdCBy ZXF1aXJlZCkKPiAgKiBAcmV0dXJuIDAgb24gc3VjY2VzcywgLTEgb24gZmFpbHVyZS4KPiAgKi8K PiBpbnQgeGVuZGV2aWNlbW9kZWxfZ2V0X2lvcmVxX3NlcnZlcl9pbmZvKAo+ZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9odm0vZG0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwo+aW5kZXggYTc4 N2Y0MzczNy4uM2M2MTdiZDc1NCAxMDA2NDQKPi0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwo+ KysrIGIveGVuL2FyY2gveDg2L2h2bS9kbS5jCj5AQCAtNDE2LDE2ICs0MTYsMTkgQEAgc3RhdGlj IGludCBkbV9vcChjb25zdCBzdHJ1Y3QgZG1vcF9hcmdzICpvcF9hcmdzKQo+ICAgICB7Cj4gICAg ICAgICBzdHJ1Y3QgeGVuX2RtX29wX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyAqZGF0YSA9Cj4gICAg ICAgICAgICAgJm9wLnUuZ2V0X2lvcmVxX3NlcnZlcl9pbmZvOwo+KyAgICAgICAgY29uc3QgdWlu dDE2X3QgdmFsaWRfZmxhZ3MgPSBYRU5fRE1PUF9ub19nZm5zOwo+IAo+ICAgICAgICAgY29uc3Rf b3AgPSBmYWxzZTsKPiAKPiAgICAgICAgIHJjID0gLUVJTlZBTDsKPi0gICAgICAgIGlmICggZGF0 YS0+cGFkICkKPisgICAgICAgIGlmICggZGF0YS0+ZmxhZ3MgJiB+dmFsaWRfZmxhZ3MgKQo+ICAg ICAgICAgICAgIGJyZWFrOwo+IAo+ICAgICAgICAgcmMgPSBodm1fZ2V0X2lvcmVxX3NlcnZlcl9p bmZvKGQsIGRhdGEtPmlkLAo+LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZkYXRhLT5pb3JlcV9nZm4sCj4tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmRhdGEtPmJ1ZmlvcmVxX2dmbiwKPisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoZGF0YS0+ZmxhZ3MgJiBYRU5fRE1PUF9ub19nZm5zKSA/Cj4rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCA6ICZkYXRhLT5pb3JlcV9nZm4sCj4rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGEtPmZsYWdzICYgWEVOX0RN T1Bfbm9fZ2ZucykgPwo+KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwgOiAmZGF0YS0+YnVmaW9yZXFfZ2ZuLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZkYXRhLT5idWZpb3JlcV9wb3J0KTsKPiAgICAgICAgIGJyZWFrOwo+ICAgICB9 Cj5kaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jIGIveGVuL2FyY2gveDg2L2h2 bS9pb3JlcS5jCj5pbmRleCBmOTEzZWQzMWZhLi4yODRlZWZlYWM1IDEwMDY0NAo+LS0tIGEveGVu L2FyY2gveDg2L2h2bS9pb3JlcS5jCj4rKysgYi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKPkBA IC0zNTAsNiArMzUwLDkgQEAgc3RhdGljIHZvaWQgaHZtX3VwZGF0ZV9pb3JlcV9ldnRjaG4oc3Ry dWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsCj4gICAgIH0KPiB9Cj4gCj4rI2RlZmluZSBIQU5ETEVf QlVGSU9SRVEocykgXAo+KyAgICAoKHMpLT5idWZpb3JlcV9oYW5kbGluZyAhPSBIVk1fSU9SRVFT UlZfQlVGSU9SRVFfT0ZGKQo+Kwo+IHN0YXRpYyBpbnQgaHZtX2lvcmVxX3NlcnZlcl9hZGRfdmNw dShzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywKPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHZjcHUgKnYpCj4gewo+QEAgLTM3MSw3ICszNzQsNyBAQCBzdGF0 aWMgaW50IGh2bV9pb3JlcV9zZXJ2ZXJfYWRkX3ZjcHUoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIg KnMsCj4gCj4gICAgIHN2LT5pb3JlcV9ldnRjaG4gPSByYzsKPiAKPi0gICAgaWYgKCB2LT52Y3B1 X2lkID09IDAgJiYgcy0+YnVmaW9yZXEudmEgIT0gTlVMTCApCj4rICAgIGlmICggdi0+dmNwdV9p ZCA9PSAwICYmIEhBTkRMRV9CVUZJT1JFUShzKSApCj4gICAgIHsKPiAgICAgICAgIHN0cnVjdCBk b21haW4gKmQgPSBzLT5kb21haW47Cj4gCj5AQCAtNDIyLDcgKzQyNSw3IEBAIHN0YXRpYyB2b2lk IGh2bV9pb3JlcV9zZXJ2ZXJfcmVtb3ZlX3ZjcHUoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMs Cj4gCj4gICAgICAgICBsaXN0X2RlbCgmc3YtPmxpc3RfZW50cnkpOwo+IAo+LSAgICAgICAgaWYg KCB2LT52Y3B1X2lkID09IDAgJiYgcy0+YnVmaW9yZXEudmEgIT0gTlVMTCApCj4rICAgICAgICBp ZiAoIHYtPnZjcHVfaWQgPT0gMCAmJiBIQU5ETEVfQlVGSU9SRVEocykgKQo+ICAgICAgICAgICAg IGZyZWVfeGVuX2V2ZW50X2NoYW5uZWwodi0+ZG9tYWluLCBzLT5idWZpb3JlcV9ldnRjaG4pOwo+ IAo+ICAgICAgICAgZnJlZV94ZW5fZXZlbnRfY2hhbm5lbCh2LT5kb21haW4sIHN2LT5pb3JlcV9l dnRjaG4pOwo+QEAgLTQ0OSw3ICs0NTIsNyBAQCBzdGF0aWMgdm9pZCBodm1faW9yZXFfc2VydmVy X3JlbW92ZV9hbGxfdmNwdXMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMpCj4gCj4gICAgICAg ICBsaXN0X2RlbCgmc3YtPmxpc3RfZW50cnkpOwo+IAo+LSAgICAgICAgaWYgKCB2LT52Y3B1X2lk ID09IDAgJiYgcy0+YnVmaW9yZXEudmEgIT0gTlVMTCApCj4rICAgICAgICBpZiAoIHYtPnZjcHVf aWQgPT0gMCAmJiBIQU5ETEVfQlVGSU9SRVEocykgKQo+ICAgICAgICAgICAgIGZyZWVfeGVuX2V2 ZW50X2NoYW5uZWwodi0+ZG9tYWluLCBzLT5idWZpb3JlcV9ldnRjaG4pOwo+IAo+ICAgICAgICAg ZnJlZV94ZW5fZXZlbnRfY2hhbm5lbCh2LT5kb21haW4sIHN2LT5pb3JlcV9ldnRjaG4pOwo+QEAg LTQ2MCwxNCArNDYzLDEzIEBAIHN0YXRpYyB2b2lkIGh2bV9pb3JlcV9zZXJ2ZXJfcmVtb3ZlX2Fs bF92Y3B1cyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKPiAgICAgc3Bpbl91bmxvY2soJnMt PmxvY2spOwo+IH0KPiAKPi1zdGF0aWMgaW50IGh2bV9pb3JlcV9zZXJ2ZXJfbWFwX3BhZ2VzKHN0 cnVjdCBodm1faW9yZXFfc2VydmVyICpzLAo+LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCBoYW5kbGVfYnVmaW9yZXEpCj4rc3RhdGljIGludCBodm1faW9yZXFfc2Vy dmVyX21hcF9wYWdlcyhzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKPiB7Cj4gICAgIGludCBy YzsKPiAKPiAgICAgcmMgPSBodm1fbWFwX2lvcmVxX2dmbihzLCBmYWxzZSk7Cj4gCj4tICAgIGlm ICggIXJjICYmIGhhbmRsZV9idWZpb3JlcSApCj4rICAgIGlmICggIXJjICYmIEhBTkRMRV9CVUZJ T1JFUShzKSApCj4gICAgICAgICByYyA9IGh2bV9tYXBfaW9yZXFfZ2ZuKHMsIHRydWUpOwo+IAo+ ICAgICBpZiAoIHJjICkKPkBAIC01OTcsMTMgKzU5OSw3IEBAIHN0YXRpYyBpbnQgaHZtX2lvcmVx X3NlcnZlcl9pbml0KHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzLAo+ICAgICBpZiAoIHJjICkK PiAgICAgICAgIHJldHVybiByYzsKPiAKPi0gICAgaWYgKCBidWZpb3JlcV9oYW5kbGluZyA9PSBI Vk1fSU9SRVFTUlZfQlVGSU9SRVFfQVRPTUlDICkKPi0gICAgICAgIHMtPmJ1ZmlvcmVxX2F0b21p YyA9IHRydWU7Cj4tCj4tICAgIHJjID0gaHZtX2lvcmVxX3NlcnZlcl9tYXBfcGFnZXMoCj4tICAg ICAgICAgICAgIHMsIGJ1ZmlvcmVxX2hhbmRsaW5nICE9IEhWTV9JT1JFUVNSVl9CVUZJT1JFUV9P RkYpOwoKV2h5IG5vdCBzZXQgdXAgbWFwcGluZyBoZXJlIGZvciBkZWZhdWx0IGlvc2VydmVyPwpP dGhlcndpc2UsIG9sZCBxZW11IHdvbid0IHRyaWdnZXIgdGhhdC4KClRoYW5rcwpDaGFvCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs