From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 3/3] xen-hvm: try to use xenforeignmemory_map_resource() to map ioreq pages Date: Tue, 15 May 2018 17:40:53 +0100 Message-ID: <20180515164053.14604-4-paul.durrant@citrix.com> References: <20180515164053.14604-1-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.89) (envelope-from ) id 1fId0W-0000a1-5d for xen-devel@lists.xenproject.org; Tue, 15 May 2018 16:41:00 +0000 In-Reply-To: <20180515164053.14604-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+Cgp2MzoKIC0gQWRkcmVzc2VkIGNvbW1lbnRzIGZyb20gQW50aG9ueQog LSBWZXJpZmllZCBidWlsZCBhZ2FpbnN0IFhlbiA0LjEwCi0tLQogY29uZmlndXJlICAgICAgICAg ICAgICAgICAgIHwgIDUgKysrKwogaHcvaTM4Ni94ZW4vdHJhY2UtZXZlbnRzICAgIHwgIDEgKwog aHcvaTM4Ni94ZW4veGVuLWh2bS5jICAgICAgIHwgNjYgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tCiBpbmNsdWRlL2h3L3hlbi94ZW5fY29tbW9uLmggfCAxNiAr KysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5kZXggNTlmOTFhYjNm OS4uZDAzMDk0ZjkwNSAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpAQCAt MjIzMSwxMiArMjIzMSwxNyBAQCBFT0YKICN1bmRlZiBYQ19XQU5UX0NPTVBBVF9ERVZJQ0VNT0RF TF9BUEkKICNkZWZpbmUgX19YRU5fVE9PTFNfXwogI2luY2x1ZGUgPHhlbmRldmljZW1vZGVsLmg+ CisjaW5jbHVkZSA8eGVuZm9yZWlnbm1lbW9yeS5oPgogaW50IG1haW4odm9pZCkgewogICB4ZW5k ZXZpY2Vtb2RlbF9oYW5kbGUgKnhkOworICB4ZW5mb3JlaWdubWVtb3J5X2hhbmRsZSAqeGZtZW07 CiAKICAgeGQgPSB4ZW5kZXZpY2Vtb2RlbF9vcGVuKDAsIDApOwogICB4ZW5kZXZpY2Vtb2RlbF9w aW5fbWVtb3J5X2NhY2hlYXR0cih4ZCwgMCwgMCwgMCwgMCk7CiAKKyAgeGZtZW0gPSB4ZW5mb3Jl aWdubWVtb3J5X29wZW4oMCwgMCk7CisgIHhlbmZvcmVpZ25tZW1vcnlfbWFwX3Jlc291cmNlKHhm bWVtLCAwLCAwLCAwLCAwLCAwLCBOVUxMLCAwLCAwKTsKKwogICByZXR1cm4gMDsKIH0KIEVPRgpk aWZmIC0tZ2l0IGEvaHcvaTM4Ni94ZW4vdHJhY2UtZXZlbnRzIGIvaHcvaTM4Ni94ZW4vdHJhY2Ut ZXZlbnRzCmluZGV4IDhkYWI3YmNmZTAuLjM4NjE2YjY5OGYgMTAwNjQ0Ci0tLSBhL2h3L2kzODYv eGVuL3RyYWNlLWV2ZW50cworKysgYi9ody9pMzg2L3hlbi90cmFjZS1ldmVudHMKQEAgLTE1LDYg KzE1LDcgQEAgY3B1X2lvcmVxX3Bpbyh2b2lkICpyZXEsIHVpbnQzMl90IGRpciwgdWludDMyX3Qg ZGYsIHVpbnQzMl90IGRhdGFfaXNfcHRyLCB1aW50NjQKIGNwdV9pb3JlcV9waW9fcmVhZF9yZWco dm9pZCAqcmVxLCB1aW50NjRfdCBkYXRhLCB1aW50NjRfdCBhZGRyLCB1aW50MzJfdCBzaXplKSAi SS9PPSVwIHBpbyByZWFkIHJlZyBkYXRhPTB4JSJQUkl4NjQiIHBvcnQ9MHglIlBSSXg2NCIgc2l6 ZT0lZCIKIGNwdV9pb3JlcV9waW9fd3JpdGVfcmVnKHZvaWQgKnJlcSwgdWludDY0X3QgZGF0YSwg dWludDY0X3QgYWRkciwgdWludDMyX3Qgc2l6ZSkgIkkvTz0lcCBwaW8gd3JpdGUgcmVnIGRhdGE9 MHglIlBSSXg2NCIgcG9ydD0weCUiUFJJeDY0IiBzaXplPSVkIgogY3B1X2lvcmVxX21vdmUodm9p ZCAqcmVxLCB1aW50MzJfdCBkaXIsIHVpbnQzMl90IGRmLCB1aW50MzJfdCBkYXRhX2lzX3B0ciwg dWludDY0X3QgYWRkciwgdWludDY0X3QgZGF0YSwgdWludDMyX3QgY291bnQsIHVpbnQzMl90IHNp emUpICJJL089JXAgY29weSBkaXI9JWQgZGY9JWQgcHRyPSVkIHBvcnQ9MHglIlBSSXg2NCIgZGF0 YT0weCUiUFJJeDY0IiBjb3VudD0lZCBzaXplPSVkIgoreGVuX21hcF9yZXNvdXJjZV9pb3JlcSh1 aW50MzJfdCBpZCwgdm9pZCAqYWRkcikgImlkOiAldSBhZGRyOiAlcCIKIAogIyB4ZW4tbWFwY2Fj aGUuYwogeGVuX21hcF9jYWNoZSh1aW50NjRfdCBwaHlzX2FkZHIpICJ3YW50IDB4JSJQUkl4NjQK ZGlmZiAtLWdpdCBhL2h3L2kzODYveGVuL3hlbi1odm0uYyBiL2h3L2kzODYveGVuL3hlbi1odm0u YwppbmRleCA2ZmZhM2MyMmNjLi5mZjJhOTljYmIzIDEwMDY0NAotLS0gYS9ody9pMzg2L3hlbi94 ZW4taHZtLmMKKysrIGIvaHcvaTM4Ni94ZW4veGVuLWh2bS5jCkBAIC0xMjM5LDEzICsxMjM5LDM5 IEBAIHN0YXRpYyB2b2lkIHhlbl93YWtldXBfbm90aWZpZXIoTm90aWZpZXIgKm5vdGlmaWVyLCB2 b2lkICpkYXRhKQogCiBzdGF0aWMgaW50IHhlbl9tYXBfaW9yZXFfc2VydmVyKFhlbklPU3RhdGUg KnN0YXRlKQogeworICAgIHZvaWQgKmFkZHIgPSBOVUxMOworICAgIHhlbmZvcmVpZ25tZW1vcnlf cmVzb3VyY2VfaGFuZGxlICpmcmVzOwogICAgIHhlbl9wZm5fdCBpb3JlcV9wZm47CiAgICAgeGVu X3Bmbl90IGJ1ZmlvcmVxX3BmbjsKICAgICBldnRjaG5fcG9ydF90IGJ1ZmlvcmVxX2V2dGNobjsK ICAgICBpbnQgcmM7CiAKKyAgICAvKgorICAgICAqIEF0dGVtcHQgdG8gbWFwIHVzaW5nIHRoZSBy ZXNvdXJjZSBBUEkgYW5kIGZhbGwgYmFjayB0byBub3JtYWwKKyAgICAgKiBmb3JlaWduIG1hcHBp bmcgaWYgdGhpcyBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAqLworICAgIFFFTVVfQlVJTERfQlVH X09OKFhFTk1FTV9yZXNvdXJjZV9pb3JlcV9zZXJ2ZXJfZnJhbWVfYnVmaW9yZXEgIT0gMCk7Cisg ICAgUUVNVV9CVUlMRF9CVUdfT04oWEVOTUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlcl9mcmFtZV9p b3JlcSgwKSAhPSAxKTsKKyAgICBmcmVzID0geGVuZm9yZWlnbm1lbW9yeV9tYXBfcmVzb3VyY2Uo eGVuX2ZtZW0sIHhlbl9kb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWEVOTUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmlvc2VydmlkLCAwLCAyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYWRkciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgMCk7CisgICAgaWYg KGZyZXMgIT0gTlVMTCkgeworICAgICAgICB0cmFjZV94ZW5fbWFwX3Jlc291cmNlX2lvcmVxKHN0 YXRlLT5pb3NlcnZpZCwgYWRkcik7CisgICAgICAgIHN0YXRlLT5idWZmZXJlZF9pb19wYWdlID0g YWRkcjsKKyAgICAgICAgc3RhdGUtPnNoYXJlZF9wYWdlID0gYWRkciArIFRBUkdFVF9QQUdFX1NJ WkU7CisgICAgfSBlbHNlIGlmIChlcnJubyAhPSBFT1BOT1RTVVBQKSB7CisgICAgICAgIGVycm9y X3JlcG9ydCgiZmFpbGVkIHRvIG1hcCBpb3JlcSBzZXJ2ZXIgcmVzb3VyY2VzOiBlcnJvciAlZCBo YW5kbGU9JXAiLAorICAgICAgICAgICAgICAgICAgICAgZXJybm8sIHhlbl94Yyk7CisgICAgICAg IHJldHVybiAtMTsKKyAgICB9CisKICAgICByYyA9IHhlbl9nZXRfaW9yZXFfc2VydmVyX2luZm8o eGVuX2RvbWlkLCBzdGF0ZS0+aW9zZXJ2aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZpb3JlcV9wZm4sICZidWZpb3JlcV9wZm4sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChzdGF0ZS0+c2hhcmVkX3BhZ2UgPT0gTlVMTCkgPworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmaW9yZXFfcGZuIDogTlVMTCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHN0YXRlLT5idWZmZXJlZF9pb19wYWdlID09IE5VTEwpID8K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJ1ZmlvcmVxX3BmbiA6IE5VTEws CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZidWZpb3JlcV9ldnRjaG4pOwog ICAgIGlmIChyYyA8IDApIHsKICAgICAgICAgZXJyb3JfcmVwb3J0KCJmYWlsZWQgdG8gZ2V0IGlv cmVxIHNlcnZlciBpbmZvOiBlcnJvciAlZCBoYW5kbGU9JXAiLApAQCAtMTI1MywyNyArMTI3OSwz NyBAQCBzdGF0aWMgaW50IHhlbl9tYXBfaW9yZXFfc2VydmVyKFhlbklPU3RhdGUgKnN0YXRlKQog ICAgICAgICByZXR1cm4gcmM7CiAgICAgfQogCi0gICAgRFBSSU5URigic2hhcmVkIHBhZ2UgYXQg cGZuICVseFxuIiwgaW9yZXFfcGZuKTsKLSAgICBEUFJJTlRGKCJidWZmZXJlZCBpbyBwYWdlIGF0 IHBmbiAlbHhcbiIsIGJ1ZmlvcmVxX3Bmbik7Ci0gICAgRFBSSU5URigiYnVmZmVyZWQgaW8gZXZ0 Y2huIGlzICV4XG4iLCBidWZpb3JlcV9ldnRjaG4pOwotCi0gICAgc3RhdGUtPnNoYXJlZF9wYWdl ID0geGVuZm9yZWlnbm1lbW9yeV9tYXAoeGVuX2ZtZW0sIHhlbl9kb21pZCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRF LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsICZpb3Jl cV9wZm4sIE5VTEwpOwogICAgIGlmIChzdGF0ZS0+c2hhcmVkX3BhZ2UgPT0gTlVMTCkgewotICAg ICAgICBlcnJvcl9yZXBvcnQoIm1hcCBzaGFyZWQgSU8gcGFnZSByZXR1cm5lZCBlcnJvciAlZCBo YW5kbGU9JXAiLAotICAgICAgICAgICAgICAgICAgICAgZXJybm8sIHhlbl94Yyk7Ci0gICAgICAg IHJldHVybiAtMTsKKyAgICAgICAgRFBSSU5URigic2hhcmVkIHBhZ2UgYXQgcGZuICVseFxuIiwg aW9yZXFfcGZuKTsKKworICAgICAgICBzdGF0ZS0+c2hhcmVkX3BhZ2UgPSB4ZW5mb3JlaWdubWVt b3J5X21hcCh4ZW5fZm1lbSwgeGVuX2RvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAmaW9yZXFfcGZuLCBO VUxMKTsKKyAgICAgICAgaWYgKHN0YXRlLT5zaGFyZWRfcGFnZSA9PSBOVUxMKSB7CisgICAgICAg ICAgICBlcnJvcl9yZXBvcnQoIm1hcCBzaGFyZWQgSU8gcGFnZSByZXR1cm5lZCBlcnJvciAlZCBo YW5kbGU9JXAiLAorICAgICAgICAgICAgICAgICAgICAgICAgIGVycm5vLCB4ZW5feGMpOworICAg ICAgICB9CiAgICAgfQogCi0gICAgc3RhdGUtPmJ1ZmZlcmVkX2lvX3BhZ2UgPSB4ZW5mb3JlaWdu bWVtb3J5X21hcCh4ZW5fZm1lbSwgeGVuX2RvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsICZidWZpb3Jl cV9wZm4sIE5VTEwpOwogICAgIGlmIChzdGF0ZS0+YnVmZmVyZWRfaW9fcGFnZSA9PSBOVUxMKSB7 Ci0gICAgICAgIGVycm9yX3JlcG9ydCgibWFwIGJ1ZmZlcmVkIElPIHBhZ2UgcmV0dXJuZWQgZXJy b3IgJWQiLCBlcnJubyk7CisgICAgICAgIERQUklOVEYoImJ1ZmZlcmVkIGlvIHBhZ2UgYXQgcGZu ICVseFxuIiwgYnVmaW9yZXFfcGZuKTsKKworICAgICAgICBzdGF0ZS0+YnVmZmVyZWRfaW9fcGFn ZSA9IHhlbmZvcmVpZ25tZW1vcnlfbWFwKHhlbl9mbWVtLCB4ZW5fZG9taWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwg UFJPVF9XUklURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAxLCAmYnVmaW9yZXFfcGZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICBpZiAoc3RhdGUtPmJ1 ZmZlcmVkX2lvX3BhZ2UgPT0gTlVMTCkgeworICAgICAgICAgICAgZXJyb3JfcmVwb3J0KCJtYXAg YnVmZmVyZWQgSU8gcGFnZSByZXR1cm5lZCBlcnJvciAlZCIsIGVycm5vKTsKKyAgICAgICAgICAg IHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChzdGF0ZS0+c2hhcmVkX3Bh Z2UgPT0gTlVMTCB8fCBzdGF0ZS0+YnVmZmVyZWRfaW9fcGFnZSA9PSBOVUxMKSB7CiAgICAgICAg IHJldHVybiAtMTsKICAgICB9CiAKKyAgICBEUFJJTlRGKCJidWZmZXJlZCBpbyBldnRjaG4gaXMg JXhcbiIsIGJ1ZmlvcmVxX2V2dGNobik7CisKICAgICBzdGF0ZS0+YnVmaW9yZXFfcmVtb3RlX3Bv cnQgPSBidWZpb3JlcV9ldnRjaG47CiAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvaHcveGVuL3hlbl9jb21tb24uaCBiL2luY2x1ZGUvaHcveGVuL3hlbl9jb21tb24uaAppbmRl eCA1ZjE0MDJiNDk0Li4yZTQ3Yjk4ODM0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2h3L3hlbi94ZW5f Y29tbW9uLmgKKysrIGIvaW5jbHVkZS9ody94ZW4veGVuX2NvbW1vbi5oCkBAIC0xMTksNiArMTE5 LDIyIEBAIHN0YXRpYyBpbmxpbmUgaW50IHhlbmRldmljZW1vZGVsX3Bpbl9tZW1vcnlfY2FjaGVh dHRyKAogICAgIHJldHVybiB4Y19kb21haW5fcGluX21lbW9yeV9jYWNoZWF0dHIoeGVuX3hjLCBk b21pZCwgc3RhcnQsIGVuZCwgdHlwZSk7CiB9CiAKK3R5cGVkZWYgdm9pZCB4ZW5mb3JlaWdubWVt b3J5X3Jlc291cmNlX2hhbmRsZTsKKworI2RlZmluZSBYRU5NRU1fcmVzb3VyY2VfaW9yZXFfc2Vy dmVyIDAKKworI2RlZmluZSBYRU5NRU1fcmVzb3VyY2VfaW9yZXFfc2VydmVyX2ZyYW1lX2J1Zmlv cmVxIDAKKyNkZWZpbmUgWEVOTUVNX3Jlc291cmNlX2lvcmVxX3NlcnZlcl9mcmFtZV9pb3JlcShu KSAoMSArIChuKSkKKworc3RhdGljIGlubGluZSB4ZW5mb3JlaWdubWVtb3J5X3Jlc291cmNlX2hh bmRsZSAqeGVuZm9yZWlnbm1lbW9yeV9tYXBfcmVzb3VyY2UoCisgICAgeGVuZm9yZWlnbm1lbW9y eV9oYW5kbGUgKmZtZW0sIGRvbWlkX3QgZG9taWQsIHVuc2lnbmVkIGludCB0eXBlLAorICAgIHVu c2lnbmVkIGludCBpZCwgdW5zaWduZWQgbG9uZyBmcmFtZSwgdW5zaWduZWQgbG9uZyBucl9mcmFt ZXMsCisgICAgdm9pZCAqKnBhZGRyLCBpbnQgcHJvdCwgaW50IGZsYWdzKQoreworICAgIGVycm5v ID0gRU9QTk9UU1VQUDsKKyAgICByZXR1cm4gTlVMTDsKK30KKwogI2VuZGlmIC8qIENPTkZJR19Y RU5fQ1RSTF9JTlRFUkZBQ0VfVkVSU0lPTiA8IDQxMTAwICovCiAKICNpZiBDT05GSUdfWEVOX0NU UkxfSU5URVJGQUNFX1ZFUlNJT04gPCA0MTAwMAotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9y Zy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==