From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v4 8/9] xen_disk: use a single entry iovec Date: Thu, 17 May 2018 16:35:57 +0100 Message-ID: <1526571358-26685-9-git-send-email-paul.durrant@citrix.com> References: <1526571358-26685-1-git-send-email-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 1fJKwt-0001s3-Q8 for xen-devel@lists.xenproject.org; Thu, 17 May 2018 15:36:11 +0000 In-Reply-To: <1526571358-26685-1-git-send-email-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, qemu-block@nongnu.org, qemu-devel@nongnu.org Cc: Kevin Wolf , Paul Durrant , Stefano Stabellini , Max Reitz List-Id: xen-devel@lists.xenproject.org U2luY2UgeGVuX2Rpc2sgbm93IGFsd2F5cyBjb3BpZXMgZGF0YSB0byBhbmQgZnJvbSBhIGd1ZXN0 IHRoZXJlIGlzIG5vIG5lZWQKdG8gbWFpbnRhaW4gYSB2ZWN0b3IgZW50cnkgY29ycmVzcG9uZGlu ZyB0byBldmVyeSBwYWdlIG9mIGEgcmVxdWVzdC4KVGhpcyBtZWFucyB0aGVyZSBpcyBsZXNzIHBl ci1yZXF1ZXN0IHN0YXRlIHRvIG1haW50YWluIHNvIHRoZSBpb3JlcQpzdHJ1Y3R1cmUgY2FuIHNo cmluayBzaWduaWZpY2FudGx5LgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1 cnJhbnRAY2l0cml4LmNvbT4KQWNrZWQtYnk6IEFudGhvbnkgUGVyYXJkIDxhbnRob255LnBlcmFy ZEBjaXRyaXguY29tPgotLS0KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2Vy bmVsLm9yZz4KQ2M6IEtldmluIFdvbGYgPGt3b2xmQHJlZGhhdC5jb20+CkNjOiBNYXggUmVpdHog PG1yZWl0ekByZWRoYXQuY29tPgoKdjM6CiAtIFVuLWJyZWFrIGJ5IGZpeGluZyBtaXMtcGxhY2Vk IHFlbXVfaW92ZWNfYWRkKCkKCnYyOgogLSBSZS1iYXNlZAotLS0KIGh3L2Jsb2NrL3hlbl9kaXNr LmMgfCA3NiArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2h3L2Jsb2NrL3hlbl9kaXNrLmMgYi9ody9ibG9jay94ZW5fZGlzay5jCmlu ZGV4IDI4YmU4YjYuLjI4NjUxYzUgMTAwNjQ0Ci0tLSBhL2h3L2Jsb2NrL3hlbl9kaXNrLmMKKysr IGIvaHcvYmxvY2sveGVuX2Rpc2suYwpAQCAtNDYsMTMgKzQ2LDEwIEBAIHN0cnVjdCBpb3JlcSB7 CiAgICAgLyogcGFyc2VkIHJlcXVlc3QgKi8KICAgICBvZmZfdCAgICAgICAgICAgICAgIHN0YXJ0 OwogICAgIFFFTVVJT1ZlY3RvciAgICAgICAgdjsKKyAgICB2b2lkICAgICAgICAgICAgICAgICpi dWY7CisgICAgc2l6ZV90ICAgICAgICAgICAgICBzaXplOwogICAgIGludCAgICAgICAgICAgICAg ICAgcHJlc3luYzsKIAotICAgIC8qIGdyYW50IG1hcHBpbmcgKi8KLSAgICB1aW50MzJfdCAgICAg ICAgICAgIHJlZnNbQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUXTsKLSAgICB2b2lkICAg ICAgICAgICAgICAgICpwYWdlW0JMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVF07Ci0gICAg dm9pZCAgICAgICAgICAgICAgICAqcGFnZXM7Ci0KICAgICAvKiBhaW8gc3RhdHVzICovCiAgICAg aW50ICAgICAgICAgICAgICAgICBhaW9faW5mbGlnaHQ7CiAgICAgaW50ICAgICAgICAgICAgICAg ICBhaW9fZXJyb3JzOwpAQCAtMTEwLDEyICsxMDcsMTAgQEAgc3RhdGljIHZvaWQgaW9yZXFfcmVz ZXQoc3RydWN0IGlvcmVxICppb3JlcSkKICAgICBtZW1zZXQoJmlvcmVxLT5yZXEsIDAsIHNpemVv Zihpb3JlcS0+cmVxKSk7CiAgICAgaW9yZXEtPnN0YXR1cyA9IDA7CiAgICAgaW9yZXEtPnN0YXJ0 ID0gMDsKKyAgICBpb3JlcS0+YnVmID0gTlVMTDsKKyAgICBpb3JlcS0+c2l6ZSA9IDA7CiAgICAg aW9yZXEtPnByZXN5bmMgPSAwOwogCi0gICAgbWVtc2V0KGlvcmVxLT5yZWZzLCAwLCBzaXplb2Yo aW9yZXEtPnJlZnMpKTsKLSAgICBtZW1zZXQoaW9yZXEtPnBhZ2UsIDAsIHNpemVvZihpb3JlcS0+ cGFnZSkpOwotICAgIGlvcmVxLT5wYWdlcyA9IE5VTEw7Ci0KICAgICBpb3JlcS0+YWlvX2luZmxp Z2h0ID0gMDsKICAgICBpb3JlcS0+YWlvX2Vycm9ycyA9IDA7CiAKQEAgLTEzOCw3ICsxMzMsNyBA QCBzdGF0aWMgc3RydWN0IGlvcmVxICppb3JlcV9zdGFydChzdHJ1Y3QgWGVuQmxrRGV2ICpibGtk ZXYpCiAgICAgICAgIGlvcmVxID0gZ19tYWxsb2MwKHNpemVvZigqaW9yZXEpKTsKICAgICAgICAg aW9yZXEtPmJsa2RldiA9IGJsa2RldjsKICAgICAgICAgYmxrZGV2LT5yZXF1ZXN0c190b3RhbCsr OwotICAgICAgICBxZW11X2lvdmVjX2luaXQoJmlvcmVxLT52LCBCTEtJRl9NQVhfU0VHTUVOVFNf UEVSX1JFUVVFU1QpOworICAgICAgICBxZW11X2lvdmVjX2luaXQoJmlvcmVxLT52LCAxKTsKICAg ICB9IGVsc2UgewogICAgICAgICAvKiBnZXQgb25lIGZyb20gZnJlZWxpc3QgKi8KICAgICAgICAg aW9yZXEgPSBRTElTVF9GSVJTVCgmYmxrZGV2LT5mcmVlbGlzdCk7CkBAIC0xODMsNyArMTc4LDYg QEAgc3RhdGljIHZvaWQgaW9yZXFfcmVsZWFzZShzdHJ1Y3QgaW9yZXEgKmlvcmVxLCBib29sIGZp bmlzaCkKIHN0YXRpYyBpbnQgaW9yZXFfcGFyc2Uoc3RydWN0IGlvcmVxICppb3JlcSkKIHsKICAg ICBzdHJ1Y3QgWGVuQmxrRGV2ICpibGtkZXYgPSBpb3JlcS0+YmxrZGV2OwotICAgIHVpbnRwdHJf dCBtZW07CiAgICAgc2l6ZV90IGxlbjsKICAgICBpbnQgaTsKIApAQCAtMjMwLDEzICsyMjQsMTAg QEAgc3RhdGljIGludCBpb3JlcV9wYXJzZShzdHJ1Y3QgaW9yZXEgKmlvcmVxKQogICAgICAgICAg ICAgZ290byBlcnI7CiAgICAgICAgIH0KIAotICAgICAgICBpb3JlcS0+cmVmc1tpXSAgID0gaW9y ZXEtPnJlcS5zZWdbaV0uZ3JlZjsKLQotICAgICAgICBtZW0gPSBpb3JlcS0+cmVxLnNlZ1tpXS5m aXJzdF9zZWN0ICogYmxrZGV2LT5maWxlX2JsazsKICAgICAgICAgbGVuID0gKGlvcmVxLT5yZXEu c2VnW2ldLmxhc3Rfc2VjdCAtIGlvcmVxLT5yZXEuc2VnW2ldLmZpcnN0X3NlY3QgKyAxKSAqIGJs a2Rldi0+ZmlsZV9ibGs7Ci0gICAgICAgIHFlbXVfaW92ZWNfYWRkKCZpb3JlcS0+diwgKHZvaWQq KW1lbSwgbGVuKTsKKyAgICAgICAgaW9yZXEtPnNpemUgKz0gbGVuOwogICAgIH0KLSAgICBpZiAo aW9yZXEtPnN0YXJ0ICsgaW9yZXEtPnYuc2l6ZSA+IGJsa2Rldi0+ZmlsZV9zaXplKSB7CisgICAg aWYgKGlvcmVxLT5zdGFydCArIGlvcmVxLT5zaXplID4gYmxrZGV2LT5maWxlX3NpemUpIHsKICAg ICAgICAgeGVuX3B2X3ByaW50ZigmYmxrZGV2LT54ZW5kZXYsIDAsICJlcnJvcjogYWNjZXNzIGJl eW9uZCBlbmQgb2YgZmlsZVxuIik7CiAgICAgICAgIGdvdG8gZXJyOwogICAgIH0KQEAgLTI0Nywz NSArMjM4LDYgQEAgZXJyOgogICAgIHJldHVybiAtMTsKIH0KIAotc3RhdGljIHZvaWQgaW9yZXFf ZnJlZV9jb3B5X2J1ZmZlcnMoc3RydWN0IGlvcmVxICppb3JlcSkKLXsKLSAgICBpbnQgaTsKLQot ICAgIGZvciAoaSA9IDA7IGkgPCBpb3JlcS0+di5uaW92OyBpKyspIHsKLSAgICAgICAgaW9yZXEt PnBhZ2VbaV0gPSBOVUxMOwotICAgIH0KLQotICAgIHFlbXVfdmZyZWUoaW9yZXEtPnBhZ2VzKTsK LX0KLQotc3RhdGljIGludCBpb3JlcV9pbml0X2NvcHlfYnVmZmVycyhzdHJ1Y3QgaW9yZXEgKmlv cmVxKQotewotICAgIGludCBpOwotCi0gICAgaWYgKGlvcmVxLT52Lm5pb3YgPT0gMCkgewotICAg ICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBpb3JlcS0+cGFnZXMgPSBxZW11X21lbWFsaWdu KFhDX1BBR0VfU0laRSwgaW9yZXEtPnYubmlvdiAqIFhDX1BBR0VfU0laRSk7Ci0KLSAgICBmb3Ig KGkgPSAwOyBpIDwgaW9yZXEtPnYubmlvdjsgaSsrKSB7Ci0gICAgICAgIGlvcmVxLT5wYWdlW2ld ID0gaW9yZXEtPnBhZ2VzICsgaSAqIFhDX1BBR0VfU0laRTsKLSAgICAgICAgaW9yZXEtPnYuaW92 W2ldLmlvdl9iYXNlID0gaW9yZXEtPnBhZ2VbaV07Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7Ci19 Ci0KIHN0YXRpYyBpbnQgaW9yZXFfZ3JhbnRfY29weShzdHJ1Y3QgaW9yZXEgKmlvcmVxKQogewog ICAgIHN0cnVjdCBYZW5CbGtEZXYgKmJsa2RldiA9IGlvcmVxLT5ibGtkZXY7CkBAIC0yODQsMjUg KzI0NiwyNyBAQCBzdGF0aWMgaW50IGlvcmVxX2dyYW50X2NvcHkoc3RydWN0IGlvcmVxICppb3Jl cSkKICAgICBpbnQgaSwgY291bnQsIHJjOwogICAgIGludDY0X3QgZmlsZV9ibGsgPSBpb3JlcS0+ YmxrZGV2LT5maWxlX2JsazsKICAgICBib29sIHRvX2RvbWFpbiA9IChpb3JlcS0+cmVxLm9wZXJh dGlvbiA9PSBCTEtJRl9PUF9SRUFEKTsKKyAgICB2b2lkICp2aXJ0ID0gaW9yZXEtPmJ1ZjsKIAot ICAgIGlmIChpb3JlcS0+di5uaW92ID09IDApIHsKKyAgICBpZiAoaW9yZXEtPnJlcS5ucl9zZWdt ZW50cyA9PSAwKSB7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGNvdW50ID0gaW9y ZXEtPnYubmlvdjsKKyAgICBjb3VudCA9IGlvcmVxLT5yZXEubnJfc2VnbWVudHM7CiAKICAgICBm b3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewogICAgICAgICBpZiAodG9fZG9tYWluKSB7Ci0g ICAgICAgICAgICBzZWdzW2ldLmRlc3QuZm9yZWlnbi5yZWYgPSBpb3JlcS0+cmVmc1tpXTsKKyAg ICAgICAgICAgIHNlZ3NbaV0uZGVzdC5mb3JlaWduLnJlZiA9IGlvcmVxLT5yZXEuc2VnW2ldLmdy ZWY7CiAgICAgICAgICAgICBzZWdzW2ldLmRlc3QuZm9yZWlnbi5vZmZzZXQgPSBpb3JlcS0+cmVx LnNlZ1tpXS5maXJzdF9zZWN0ICogZmlsZV9ibGs7Ci0gICAgICAgICAgICBzZWdzW2ldLnNvdXJj ZS52aXJ0ID0gaW9yZXEtPnYuaW92W2ldLmlvdl9iYXNlOworICAgICAgICAgICAgc2Vnc1tpXS5z b3VyY2UudmlydCA9IHZpcnQ7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzZWdzW2ld LnNvdXJjZS5mb3JlaWduLnJlZiA9IGlvcmVxLT5yZWZzW2ldOworICAgICAgICAgICAgc2Vnc1tp XS5zb3VyY2UuZm9yZWlnbi5yZWYgPSBpb3JlcS0+cmVxLnNlZ1tpXS5ncmVmOwogICAgICAgICAg ICAgc2Vnc1tpXS5zb3VyY2UuZm9yZWlnbi5vZmZzZXQgPSBpb3JlcS0+cmVxLnNlZ1tpXS5maXJz dF9zZWN0ICogZmlsZV9ibGs7Ci0gICAgICAgICAgICBzZWdzW2ldLmRlc3QudmlydCA9IGlvcmVx LT52LmlvdltpXS5pb3ZfYmFzZTsKKyAgICAgICAgICAgIHNlZ3NbaV0uZGVzdC52aXJ0ID0gdmly dDsKICAgICAgICAgfQogICAgICAgICBzZWdzW2ldLmxlbiA9IChpb3JlcS0+cmVxLnNlZ1tpXS5s YXN0X3NlY3QKICAgICAgICAgICAgICAgICAgICAgICAgLSBpb3JlcS0+cmVxLnNlZ1tpXS5maXJz dF9zZWN0ICsgMSkgKiBmaWxlX2JsazsKKyAgICAgICAgdmlydCArPSBzZWdzW2ldLmxlbjsKICAg ICB9CiAKICAgICByYyA9IHhlbl9iZV9jb3B5X2dyYW50X3JlZnMoeGVuZGV2LCB0b19kb21haW4s IHNlZ3MsIGNvdW50KTsKQEAgLTM0OCwxNCArMzEyLDE0IEBAIHN0YXRpYyB2b2lkIHFlbXVfYWlv X2NvbXBsZXRlKHZvaWQgKm9wYXF1ZSwgaW50IHJldCkKICAgICAgICAgaWYgKHJldCA9PSAwKSB7 CiAgICAgICAgICAgICBpb3JlcV9ncmFudF9jb3B5KGlvcmVxKTsKICAgICAgICAgfQotICAgICAg ICBpb3JlcV9mcmVlX2NvcHlfYnVmZmVycyhpb3JlcSk7CisgICAgICAgIHFlbXVfdmZyZWUoaW9y ZXEtPmJ1Zik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQkxLSUZfT1BfV1JJVEU6CiAgICAg Y2FzZSBCTEtJRl9PUF9GTFVTSF9ESVNLQ0FDSEU6CiAgICAgICAgIGlmICghaW9yZXEtPnJlcS5u cl9zZWdtZW50cykgewogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgaW9y ZXFfZnJlZV9jb3B5X2J1ZmZlcnMoaW9yZXEpOworICAgICAgICBxZW11X3ZmcmVlKGlvcmVxLT5i dWYpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKQEAgLTQy MywxMiArMzg3LDEyIEBAIHN0YXRpYyBpbnQgaW9yZXFfcnVuaW9fcWVtdV9haW8oc3RydWN0IGlv cmVxICppb3JlcSkKIHsKICAgICBzdHJ1Y3QgWGVuQmxrRGV2ICpibGtkZXYgPSBpb3JlcS0+Ymxr ZGV2OwogCi0gICAgaW9yZXFfaW5pdF9jb3B5X2J1ZmZlcnMoaW9yZXEpOworICAgIGlvcmVxLT5i dWYgPSBxZW11X21lbWFsaWduKFhDX1BBR0VfU0laRSwgaW9yZXEtPnNpemUpOwogICAgIGlmIChp b3JlcS0+cmVxLm5yX3NlZ21lbnRzICYmCiAgICAgICAgIChpb3JlcS0+cmVxLm9wZXJhdGlvbiA9 PSBCTEtJRl9PUF9XUklURSB8fAogICAgICAgICAgaW9yZXEtPnJlcS5vcGVyYXRpb24gPT0gQkxL SUZfT1BfRkxVU0hfRElTS0NBQ0hFKSAmJgogICAgICAgICBpb3JlcV9ncmFudF9jb3B5KGlvcmVx KSkgewotICAgICAgICBpb3JlcV9mcmVlX2NvcHlfYnVmZmVycyhpb3JlcSk7CisgICAgICAgIHFl bXVfdmZyZWUoaW9yZXEtPmJ1Zik7CiAgICAgICAgIGdvdG8gZXJyOwogICAgIH0KIApAQCAtNDQw LDYgKzQwNCw3IEBAIHN0YXRpYyBpbnQgaW9yZXFfcnVuaW9fcWVtdV9haW8oc3RydWN0IGlvcmVx ICppb3JlcSkKIAogICAgIHN3aXRjaCAoaW9yZXEtPnJlcS5vcGVyYXRpb24pIHsKICAgICBjYXNl IEJMS0lGX09QX1JFQUQ6CisgICAgICAgIHFlbXVfaW92ZWNfYWRkKCZpb3JlcS0+diwgaW9yZXEt PmJ1ZiwgaW9yZXEtPnNpemUpOwogICAgICAgICBibG9ja19hY2N0X3N0YXJ0KGJsa19nZXRfc3Rh dHMoYmxrZGV2LT5ibGspLCAmaW9yZXEtPmFjY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAg aW9yZXEtPnYuc2l6ZSwgQkxPQ0tfQUNDVF9SRUFEKTsKICAgICAgICAgaW9yZXEtPmFpb19pbmZs aWdodCsrOwpAQCAtNDUyLDYgKzQxNyw3IEBAIHN0YXRpYyBpbnQgaW9yZXFfcnVuaW9fcWVtdV9h aW8oc3RydWN0IGlvcmVxICppb3JlcSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAK KyAgICAgICAgcWVtdV9pb3ZlY19hZGQoJmlvcmVxLT52LCBpb3JlcS0+YnVmLCBpb3JlcS0+c2l6 ZSk7CiAgICAgICAgIGJsb2NrX2FjY3Rfc3RhcnQoYmxrX2dldF9zdGF0cyhibGtkZXYtPmJsayks ICZpb3JlcS0+YWNjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICBpb3JlcS0+di5zaXplLAog ICAgICAgICAgICAgICAgICAgICAgICAgIGlvcmVxLT5yZXEub3BlcmF0aW9uID09IEJMS0lGX09Q X1dSSVRFID8KLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJv amVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hl bi1kZXZlbA==