From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH 2/2] xen-hvm: try to use xenforeignmemory_map_resource() to map ioreq pages Date: Wed, 9 May 2018 16:46:04 +0100 Message-ID: <20180509154604.25530-3-paul.durrant@citrix.com> References: <20180509154604.25530-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fGRIA-00063M-Vn for xen-devel@lists.xenproject.org; Wed, 09 May 2018 15:46:11 +0000 In-Reply-To: <20180509154604.25530-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: qemu-devel@nongnu.org, xen-devel@lists.xenproject.org Cc: Anthony Perard , Paul Durrant , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org WGVuIDQuMTEgaGFzIGEgbmV3IEFQSSB0byBkaXJlY3RseSBtYXAgZ3Vlc3QgcmVzb3VyY2VzLiBB bW9uZyB0aGUgcmVzb3VyY2VzCnRoYXQgY2FuIGJlIG1hcHBlZCB1c2luZyB0aGlzIEFQSSBhcmUg aW9yZXEgcGFnZXMuCgpUaGlzIHBhdGNoIG1vZGlmaWVzIFFFTVUgdG8gYXR0ZW1wdCB0byB1c2Ug dGhlIG5ldyBBUEkgc2hvdWxkIGl0IGV4aXN0LApmYWxsaW5nIGJhY2sgdG8gdGhlIHByZXZpb3Vz IG1lY2hhbmlzbSBpZiBpdCBpcyB1bmF2YWlsYWJsZS4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVy cmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQpDYzogU3RlZmFubyBTdGFiZWxsaW5p IDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDYzogQW50aG9ueSBQZXJhcmQgPGFudGhvbnkucGVy YXJkQGNpdHJpeC5jb20+Ci0tLQogY29uZmlndXJlICAgICAgICAgICAgICAgICAgIHwgIDUgKysr KwogaHcvaTM4Ni94ZW4vdHJhY2UtZXZlbnRzICAgIHwgIDEgKwogaHcvaTM4Ni94ZW4veGVuLWh2 bS5jICAgICAgIHwgNjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tCiBpbmNsdWRlL2h3L3hlbi94ZW5fY29tbW9uLmggfCAxNCArKysrKysrKysrCiA0IGZpbGVz IGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCAxNDQzNDIyZTgzLi4wZjljMmYwMDBlIDEwMDc1 NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0yMjI5LDEyICsyMjI5LDE3IEBA IEVPRgogI3VuZGVmIFhDX1dBTlRfQ09NUEFUX0RFVklDRU1PREVMX0FQSQogI2RlZmluZSBfX1hF Tl9UT09MU19fCiAjaW5jbHVkZSA8eGVuZGV2aWNlbW9kZWwuaD4KKyNpbmNsdWRlIDx4ZW5mb3Jl aWdubWVtb3J5Lmg+CiBpbnQgbWFpbih2b2lkKSB7CiAgIHhlbmRldmljZW1vZGVsX2hhbmRsZSAq eGQ7CisgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICp4Zm1lbTsKIAogICB4ZCA9IHhlbmRldmlj ZW1vZGVsX29wZW4oMCwgMCk7CiAgIHhlbmRldmljZW1vZGVsX3Bpbl9tZW1vcnlfY2FjaGVhdHRy KHhkLCAwLCAwLCAwLCAwKTsKIAorICB4Zm1lbSA9IHhlbmZvcmVpZ25tZW1vcnlfb3BlbigwLCAw KTsKKyAgeGVuZm9yZWlnbm1lbW9yeV9tYXBfcmVzb3VyY2UoeGZtZW0sIDAsIDAsIDAsIDAsIDAs IE5VTEwsIDAsIDApOworCiAgIHJldHVybiAwOwogfQogRU9GCmRpZmYgLS1naXQgYS9ody9pMzg2 L3hlbi90cmFjZS1ldmVudHMgYi9ody9pMzg2L3hlbi90cmFjZS1ldmVudHMKaW5kZXggOGRhYjdi Y2ZlMC4uMzg2MTZiNjk4ZiAxMDA2NDQKLS0tIGEvaHcvaTM4Ni94ZW4vdHJhY2UtZXZlbnRzCisr KyBiL2h3L2kzODYveGVuL3RyYWNlLWV2ZW50cwpAQCAtMTUsNiArMTUsNyBAQCBjcHVfaW9yZXFf cGlvKHZvaWQgKnJlcSwgdWludDMyX3QgZGlyLCB1aW50MzJfdCBkZiwgdWludDMyX3QgZGF0YV9p c19wdHIsIHVpbnQ2NAogY3B1X2lvcmVxX3Bpb19yZWFkX3JlZyh2b2lkICpyZXEsIHVpbnQ2NF90 IGRhdGEsIHVpbnQ2NF90IGFkZHIsIHVpbnQzMl90IHNpemUpICJJL089JXAgcGlvIHJlYWQgcmVn IGRhdGE9MHglIlBSSXg2NCIgcG9ydD0weCUiUFJJeDY0IiBzaXplPSVkIgogY3B1X2lvcmVxX3Bp b193cml0ZV9yZWcodm9pZCAqcmVxLCB1aW50NjRfdCBkYXRhLCB1aW50NjRfdCBhZGRyLCB1aW50 MzJfdCBzaXplKSAiSS9PPSVwIHBpbyB3cml0ZSByZWcgZGF0YT0weCUiUFJJeDY0IiBwb3J0PTB4 JSJQUkl4NjQiIHNpemU9JWQiCiBjcHVfaW9yZXFfbW92ZSh2b2lkICpyZXEsIHVpbnQzMl90IGRp ciwgdWludDMyX3QgZGYsIHVpbnQzMl90IGRhdGFfaXNfcHRyLCB1aW50NjRfdCBhZGRyLCB1aW50 NjRfdCBkYXRhLCB1aW50MzJfdCBjb3VudCwgdWludDMyX3Qgc2l6ZSkgIkkvTz0lcCBjb3B5IGRp cj0lZCBkZj0lZCBwdHI9JWQgcG9ydD0weCUiUFJJeDY0IiBkYXRhPTB4JSJQUkl4NjQiIGNvdW50 PSVkIHNpemU9JWQiCit4ZW5fbWFwX3Jlc291cmNlX2lvcmVxKHVpbnQzMl90IGlkLCB2b2lkICph ZGRyKSAiaWQ6ICV1IGFkZHI6ICVwIgogCiAjIHhlbi1tYXBjYWNoZS5jCiB4ZW5fbWFwX2NhY2hl KHVpbnQ2NF90IHBoeXNfYWRkcikgIndhbnQgMHglIlBSSXg2NApkaWZmIC0tZ2l0IGEvaHcvaTM4 Ni94ZW4veGVuLWh2bS5jIGIvaHcvaTM4Ni94ZW4veGVuLWh2bS5jCmluZGV4IDZmZmEzYzIyY2Mu LjY2NGNjNTI1MzIgMTAwNjQ0Ci0tLSBhL2h3L2kzODYveGVuL3hlbi1odm0uYworKysgYi9ody9p Mzg2L3hlbi94ZW4taHZtLmMKQEAgLTEyMzksMTMgKzEyMzksNDEgQEAgc3RhdGljIHZvaWQgeGVu X3dha2V1cF9ub3RpZmllcihOb3RpZmllciAqbm90aWZpZXIsIHZvaWQgKmRhdGEpCiAKIHN0YXRp YyBpbnQgeGVuX21hcF9pb3JlcV9zZXJ2ZXIoWGVuSU9TdGF0ZSAqc3RhdGUpCiB7CisgICAgdm9p ZCAqYWRkciA9IE5VTEw7CisgICAgeGVuZm9yZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUgKmZy ZXM7CiAgICAgeGVuX3Bmbl90IGlvcmVxX3BmbjsKICAgICB4ZW5fcGZuX3QgYnVmaW9yZXFfcGZu OwogICAgIGV2dGNobl9wb3J0X3QgYnVmaW9yZXFfZXZ0Y2huOwogICAgIGludCByYzsKIAorICAg IC8qCisgICAgICogQXR0ZW1wdCB0byBtYXAgdXNpbmcgdGhlIHJlc291cmNlIEFQSSBhbmQgZmFs bCBiYWNrIHRvIG5vcm1hbAorICAgICAqIGZvcmVpZ24gbWFwcGluZyBpZiB0aGlzIGlzIG5vdCBz dXBwb3J0ZWQuCisgICAgICovCisgICAgUUVNVV9CVUlMRF9CVUdfT04oWEVOTUVNX3Jlc291cmNl X2lvcmVxX3NlcnZlcl9mcmFtZV9idWZpb3JlcSAhPSAwKTsKKyAgICBRRU1VX0JVSUxEX0JVR19P TihYRU5NRU1fcmVzb3VyY2VfaW9yZXFfc2VydmVyX2ZyYW1lX2lvcmVxKDApICE9IDEpOworICAg IGZyZXMgPSB4ZW5mb3JlaWdubWVtb3J5X21hcF9yZXNvdXJjZSh4ZW5fZm1lbSwgeGVuX2RvbWlk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5NRU1fcmVzb3Vy Y2VfaW9yZXFfc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdGF0ZS0+aW9zZXJ2aWQsIDAsIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZhZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCAwKTsKKyAgICBpZiAoZnJlcyAhPSBOVUxMKSB7Cisg ICAgICAgIHRyYWNlX3hlbl9tYXBfcmVzb3VyY2VfaW9yZXEoc3RhdGUtPmlvc2VydmlkLCBhZGRy KTsKKyAgICAgICAgc3RhdGUtPmJ1ZmZlcmVkX2lvX3BhZ2UgPSBhZGRyOworICAgICAgICBzdGF0 ZS0+c2hhcmVkX3BhZ2UgPSBhZGRyICsgVEFSR0VUX1BBR0VfU0laRTsKKyAgICB9IGVsc2Ugewor ICAgICAgICBlcnJvcl9yZXBvcnQoImZhaWxlZCB0byBtYXAgaW9yZXEgc2VydmVyIHJlc291cmNl czogZXJyb3IgJWQgaGFuZGxlPSVwIiwKKyAgICAgICAgICAgICAgICAgICAgIGVycm5vLCB4ZW5f eGMpOworICAgICAgICBpZiAoZXJybm8gIT0gRU9QTk9UU1VQUCkgeworICAgICAgICAgICAgcmV0 dXJuIC0xOworICAgICAgICB9CisgICAgfQorCiAgICAgcmMgPSB4ZW5fZ2V0X2lvcmVxX3NlcnZl cl9pbmZvKHhlbl9kb21pZCwgc3RhdGUtPmlvc2VydmlkLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmaW9yZXFfcGZuLCAmYnVmaW9yZXFfcGZuLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc3RhdGUtPnNoYXJlZF9wYWdlID09IE5VTEwpID8KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlvcmVxX3BmbiA6IE5VTEwsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdGF0ZS0+YnVmZmVyZWRfaW9fcGFnZSA9PSBO VUxMKSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZidWZpb3JlcV9wZm4g OiBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYnVmaW9yZXFfZXZ0 Y2huKTsKICAgICBpZiAocmMgPCAwKSB7CiAgICAgICAgIGVycm9yX3JlcG9ydCgiZmFpbGVkIHRv IGdldCBpb3JlcSBzZXJ2ZXIgaW5mbzogZXJyb3IgJWQgaGFuZGxlPSVwIiwKQEAgLTEyNTMsMjcg KzEyODEsMzcgQEAgc3RhdGljIGludCB4ZW5fbWFwX2lvcmVxX3NlcnZlcihYZW5JT1N0YXRlICpz dGF0ZSkKICAgICAgICAgcmV0dXJuIHJjOwogICAgIH0KIAotICAgIERQUklOVEYoInNoYXJlZCBw YWdlIGF0IHBmbiAlbHhcbiIsIGlvcmVxX3Bmbik7Ci0gICAgRFBSSU5URigiYnVmZmVyZWQgaW8g cGFnZSBhdCBwZm4gJWx4XG4iLCBidWZpb3JlcV9wZm4pOwotICAgIERQUklOVEYoImJ1ZmZlcmVk IGlvIGV2dGNobiBpcyAleFxuIiwgYnVmaW9yZXFfZXZ0Y2huKTsKLQotICAgIHN0YXRlLT5zaGFy ZWRfcGFnZSA9IHhlbmZvcmVpZ25tZW1vcnlfbWFwKHhlbl9mbWVtLCB4ZW5fZG9taWQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJP VF9XUklURSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx LCAmaW9yZXFfcGZuLCBOVUxMKTsKICAgICBpZiAoc3RhdGUtPnNoYXJlZF9wYWdlID09IE5VTEwp IHsKLSAgICAgICAgZXJyb3JfcmVwb3J0KCJtYXAgc2hhcmVkIElPIHBhZ2UgcmV0dXJuZWQgZXJy b3IgJWQgaGFuZGxlPSVwIiwKLSAgICAgICAgICAgICAgICAgICAgIGVycm5vLCB4ZW5feGMpOwot ICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIERQUklOVEYoInNoYXJlZCBwYWdlIGF0IHBmbiAl bHhcbiIsIGlvcmVxX3Bmbik7CisKKyAgICAgICAgc3RhdGUtPnNoYXJlZF9wYWdlID0geGVuZm9y ZWlnbm1lbW9yeV9tYXAoeGVuX2ZtZW0sIHhlbl9kb21pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgJmlvcmVx X3BmbiwgTlVMTCk7CisgICAgICAgIGlmIChzdGF0ZS0+c2hhcmVkX3BhZ2UgPT0gTlVMTCkgewor ICAgICAgICAgICAgZXJyb3JfcmVwb3J0KCJtYXAgc2hhcmVkIElPIHBhZ2UgcmV0dXJuZWQgZXJy b3IgJWQgaGFuZGxlPSVwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBlcnJubywgeGVuX3hj KTsKKyAgICAgICAgfQogICAgIH0KIAotICAgIHN0YXRlLT5idWZmZXJlZF9pb19wYWdlID0geGVu Zm9yZWlnbm1lbW9yeV9tYXAoeGVuX2ZtZW0sIHhlbl9kb21pZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAm YnVmaW9yZXFfcGZuLCBOVUxMKTsKICAgICBpZiAoc3RhdGUtPmJ1ZmZlcmVkX2lvX3BhZ2UgPT0g TlVMTCkgewotICAgICAgICBlcnJvcl9yZXBvcnQoIm1hcCBidWZmZXJlZCBJTyBwYWdlIHJldHVy bmVkIGVycm9yICVkIiwgZXJybm8pOworICAgICAgICBEUFJJTlRGKCJidWZmZXJlZCBpbyBwYWdl IGF0IHBmbiAlbHhcbiIsIGJ1ZmlvcmVxX3Bmbik7CisKKyAgICAgICAgc3RhdGUtPmJ1ZmZlcmVk X2lvX3BhZ2UgPSB4ZW5mb3JlaWdubWVtb3J5X21hcCh4ZW5fZm1lbSwgeGVuX2RvbWlkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1Rf UkVBRCB8IFBST1RfV1JJVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMSwgJmJ1ZmlvcmVxX3BmbiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgaWYgKHN0 YXRlLT5idWZmZXJlZF9pb19wYWdlID09IE5VTEwpIHsKKyAgICAgICAgICAgIGVycm9yX3JlcG9y dCgibWFwIGJ1ZmZlcmVkIElPIHBhZ2UgcmV0dXJuZWQgZXJyb3IgJWQiLCBlcnJubyk7CisgICAg ICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoc3RhdGUtPnNo YXJlZF9wYWdlID09IE5VTEwgfHwgc3RhdGUtPmJ1ZmZlcmVkX2lvX3BhZ2UgPT0gTlVMTCkgewog ICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCisgICAgRFBSSU5URigiYnVmZmVyZWQgaW8gZXZ0 Y2huIGlzICV4XG4iLCBidWZpb3JlcV9ldnRjaG4pOworCiAgICAgc3RhdGUtPmJ1ZmlvcmVxX3Jl bW90ZV9wb3J0ID0gYnVmaW9yZXFfZXZ0Y2huOwogCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQg YS9pbmNsdWRlL2h3L3hlbi94ZW5fY29tbW9uLmggYi9pbmNsdWRlL2h3L3hlbi94ZW5fY29tbW9u LmgKaW5kZXggNWYxNDAyYjQ5NC4uZDkyNTc1MTA0MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ody94 ZW4veGVuX2NvbW1vbi5oCisrKyBiL2luY2x1ZGUvaHcveGVuL3hlbl9jb21tb24uaApAQCAtMTE5 LDYgKzExOSwyMCBAQCBzdGF0aWMgaW5saW5lIGludCB4ZW5kZXZpY2Vtb2RlbF9waW5fbWVtb3J5 X2NhY2hlYXR0cigKICAgICByZXR1cm4geGNfZG9tYWluX3Bpbl9tZW1vcnlfY2FjaGVhdHRyKHhl bl94YywgZG9taWQsIHN0YXJ0LCBlbmQsIHR5cGUpOwogfQogCit0eXBlZGVmIHZvaWQgeGVuZm9y ZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGU7CisKKyNkZWZpbmUgWEVOTUVNX3Jlc291cmNlX2lv cmVxX3NlcnZlcl9mcmFtZV9idWZpb3JlcSAwCisjZGVmaW5lIFhFTk1FTV9yZXNvdXJjZV9pb3Jl cV9zZXJ2ZXJfZnJhbWVfaW9yZXEobikgKDEgKyAobikpCisKK3N0YXRpYyBpbmxpbmUgeGVuZm9y ZWlnbm1lbW9yeV9yZXNvdXJjZV9oYW5kbGUgKnhlbmZvcmVpZ25tZW1vcnlfbWFwX3Jlc291cmNl KAorICAgIHhlbmZvcmVpZ25tZW1vcnlfaGFuZGxlICpmbWVtLCBkb21pZF90IGRvbWlkLCB1bnNp Z25lZCBpbnQgdHlwZSwKKyAgICB1bnNpZ25lZCBpbnQgaWQsIHVuc2lnbmVkIGxvbmcgZnJhbWUs IHVuc2lnbmVkIGxvbmcgbnJfZnJhbWVzLAorICAgIHZvaWQgKipwYWRkciwgaW50IHByb3QsIGlu dCBmbGFncykKK3sKKyAgICBlcnJubyA9IEVPUE5PVFNVUFA7CisgICAgcmV0dXJuIC0xOworfQor CiAjZW5kaWYgLyogQ09ORklHX1hFTl9DVFJMX0lOVEVSRkFDRV9WRVJTSU9OIDwgNDExMDAgKi8K IAogI2lmIENPTkZJR19YRU5fQ1RSTF9JTlRFUkZBQ0VfVkVSU0lPTiA8IDQxMDAwCi0tIAoyLjEx LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczov L2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs