From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulina Szubarczyk Subject: [PATCH RESEND 3/4] qdisk, hw/block/xen_disk: Perform grant copy instead of grant map. Date: Tue, 31 May 2016 06:44:57 +0200 Message-ID: <1464669898-28495-4-git-send-email-paulinaszubarczyk@gmail.com> References: <1464669898-28495-1-git-send-email-paulinaszubarczyk@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b7bZN-0007UV-6S for xen-devel@lists.xenproject.org; Tue, 31 May 2016 04:46:21 +0000 Received: by mail-lf0-f68.google.com with SMTP id q63so6045168lfi.2 for ; Mon, 30 May 2016 21:46:17 -0700 (PDT) In-Reply-To: <1464669898-28495-1-git-send-email-paulinaszubarczyk@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org, roger.pau@citrix.com Cc: sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, Paulina Szubarczyk , ian.jackson@eu.citrix.com, P.Gawkowski@ii.pw.edu.pl, anthony.perard@citrix.com List-Id: xen-devel@lists.xenproject.org R3JhbnQgY29weSBvcGVyYXRpb24gaXMgZGl2aWRlZCBpbnRvIHR3byBwaGFzZXMgZGlmZmVyZW50 IGZvcgoncmVhZCcgYW5kICd3cml0ZScgb3BlcmF0aW9uLgoKRm9yIGEgJ3JlYWQnIG9wZXJhdGlv biB0aGUgZmxvdyBpcyBhcyBmb2xsb3c6CiAgICAxLiBhbGxvY2F0ZSBsb2NhbCBidWZmZXJzIGZv ciBhbGwgdGhlIHNlZ21lbnRzIGNvbnRhaW5lZCBpbgogICAgICAgYSByZXF1ZXN0LgogICAgMi4g ZmlsbCB0aGUgcmVxdWVzdCBpbyB2ZWN0b3JzIHdpdGggdGhlIGJ1ZmZlcnMnIGFkZHJlc3Nlcwog ICAgMy4gaW52b2tlIHJlYWQgb3BlcmF0aW9uIGJ5IHFlbXUgZGV2aWNlCiAgICA0LiBpbiB0aGUg Y29tcGxldGl0aW9uIGNhbGwgZ3JhbnQgY29weQogICAgNS4gZnJlZSB0aGUgYnVmZmVycwoKRnVu Y3Rpb24gJ2lvcmVxX3JlYWRfaW5pdCcgaW1wbGVtZW50cyAxLiBhbmQgMi4gc3RlcC4gSXQgaXMg Y2FsbGVkCmluc3RlYWQgb2YgJ2lvcmVxX21hcCcgaW4gJ2lvcmVxX3J1bmlvX3FlbXVfYWlvJy4g VGhlbiB0aGUgZnVuY3Rpb24KJ2lvcmVxX3J1bmlvX3FlbXVfYWlvJyBjb250aW51ZXMgd2l0aG91 dGggY2hhbmdlcyBwZXJmb3JtaW5nIHN0ZXAgMy4KU3RlcHMgNC4gYW5kIDUuIGFyZSBjYWxsZWQg aW4gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uCidxZW11X2Fpb19jb21wbGV0ZScuIFRoZSBpb3JlcV9y ZWFkJyBmdW5jdGlvbiBpcyBpbXBsZW1lbnRlZCBmb3IKc3RlcCA0IHdoaWNoIGNhbGxzIHRoZSBu ZXcgZnVuY3Rpb24gJ3hjX2dudHRhYl9jb3B5X2dyYW50JyBwcmVzZW50ZWQKaW4gdGhlIG90aGVy IHBhcnQgb2YgdGhlIHBhdGNoLgoKRm9yIGEgJ3dyaXRlJyBvcGVyYXRpb24gc3RlcHMgNC4gaGFw cGVucyBiZWZvcmUgc3RlcCAyLi4gRmlyc3QgZGF0YQphcmUgY29waWVkIGZyb20gY2FsbGluZyBn dWVzdCBkb21haW5zIGFuZCB0aGVuIHFlbXUgb3BlcmF0ZXMgb24KdGhlbS4KLS0tCiBody9ibG9j ay94ZW5fZGlzay5jIHwgMTg1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxODUgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL2h3L2Jsb2NrL3hlbl9kaXNrLmMgYi9ody9ibG9jay94ZW5fZGlzay5jCmluZGV4IDNi Nzg4MmUuLjQzY2Q5YzkgMTAwNjQ0Ci0tLSBhL2h3L2Jsb2NrL3hlbl9kaXNrLmMKKysrIGIvaHcv YmxvY2sveGVuX2Rpc2suYwpAQCAtMjg0LDYgKzI4NCwxNTQgQEAgZXJyOgogICAgIHJldHVybiAt MTsKIH0KIAorCitzdGF0aWMgdm9pZCogZ2V0X2J1ZmZlcih2b2lkKSB7CisgICAgdm9pZCAqYnVm OworCisgICAgYnVmID0gbW1hcChOVUxMLCAxIDw8IFhDX1BBR0VfU0hJRlQsIFBST1RfUkVBRCB8 IFBST1RfV1JJVEUsIAorICAgICAgICAgICAgICAgTUFQX1NIQVJFRCB8IE1BUF9BTk9OWU1PVVMs IC0xLCAwKTsKKworICAgIGlmICh1bmxpa2VseShidWYgPT0gTUFQX0ZBSUxFRCkpCisgICAgICAg IHJldHVybiBOVUxMOworCisgICAgcmV0dXJuIGJ1ZjsKK30KKworc3RhdGljIGludCBmcmVlX2J1 ZmZlcih2b2lkKiBidWYpIHsKKyAgICByZXR1cm4gbXVubWFwKGJ1ZiwgMSA8PCBYQ19QQUdFX1NI SUZUKTsKK30KKworc3RhdGljIGludCBmcmVlX2J1ZmZlcnModm9pZCoqIHBhZ2UsIGludCBjb3Vu dCkgCit7CisgICAgaW50IGksIHIgPSAwOworCisgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBp KyspIHsgCisgICAgICAgIAorICAgICAgICBpZihmcmVlX2J1ZmZlcihwYWdlW2ldKSkgCisgICAg ICAgICAgICByID0gMTsKKyAgICAgICAgCisgICAgICAgIHBhZ2VbaV0gPSBOVUxMOworICAgIH0K KworICAgIHJldHVybiByOworfQorCitzdGF0aWMgaW50IGlvcmVxX3dyaXRlKHN0cnVjdCBpb3Jl cSAqaW9yZXEpIAoreworICAgIFhlbkdudHRhYiBnbnQgPSBpb3JlcS0+YmxrZGV2LT54ZW5kZXYu Z250dGFiZGV2OworICAgIHVpbnQxNl90IGRvbWlkc1tCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JF UVVFU1RdOworICAgIHVpbnQzMl90IHJlZnNbQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNU XTsKKyAgICB1aW50MzJfdCBvZmZzZXRbQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUXTsK KyAgICB1aW50MzJfdCBsZW5bQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUXTsKKyAgICB2 b2lkICpwYWdlc1tCTEtJRl9NQVhfU0VHTUVOVFNfUEVSX1JFUVVFU1RdOworICAgIGludCBpLCBj b3VudCA9IDAsIHJjLCByOworICAgIC8qIENvcHkgdGhlIGRhdGEgZm9yIHdyaXRlIG9wZXJhdGlv biBmcm9tIGd1ZXN0IGdyYW50IHBhZ2VzIGFkZHJlc3NlZCBieSAKKyAgICAgKiBkb21pZHMsIHJl ZnMsIG9mZnNldCwgbGVuIHRvIGxvY2FsIGJ1ZmZlcnMuCisgICAgICogCisgICAgICogQnVmZmVy ZXMgYXJlIHRoZW4gbWFwcGVkIHRvIHRoZSBwZW5kaW5nIHJlcXVlc3QgZm9yIGZ1cnRoZXIgCisg ICAgICogY29tcGxldGl0aW9uLgorICAgICAqLworCisgICAgaWYgKGlvcmVxLT52Lm5pb3YgPT0g MCkgeworICAgICAgICByID0gMDsgZ290byBvdXQ7CisgICAgfQorCisgICAgY291bnQgPSBpb3Jl cS0+di5uaW92OworICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgIGRv bWlkc1tpXSA9IGlvcmVxLT5kb21pZHNbaV07CisgICAgICAgIHJlZnNbaV0gICA9IGlvcmVxLT5y ZWZzW2ldOworICAgICAgICBvZmZzZXRbaV0gPSBpb3JlcS0+cmVxLnNlZ1tpXS5maXJzdF9zZWN0 ICogaW9yZXEtPmJsa2Rldi0+ZmlsZV9ibGs7CisgICAgICAgIGxlbltpXSA9IChpb3JlcS0+cmVx LnNlZ1tpXS5sYXN0X3NlY3QgLSBpb3JlcS0+cmVxLnNlZ1tpXS5maXJzdF9zZWN0ICsgMSkgCisg ICAgICAgICAgICAgICAgICAqIGlvcmVxLT5ibGtkZXYtPmZpbGVfYmxrOworICAgICAgICBwYWdl c1tpXSAgPSBnZXRfYnVmZmVyKCk7CisKKyAgICAgICAgaWYoIXBhZ2VzW2ldKSB7CisgICAgICAg ICAgICB4ZW5fYmVfcHJpbnRmKCZpb3JlcS0+YmxrZGV2LT54ZW5kZXYsIDAsIAorICAgICAgICAg ICAgICAgICAgICAgICAgICAiZmFpbGVkIHRvIGFsbG9jIHBhZ2UsIGVycm5vICVkIFxuIiwgZXJy bm8pOworICAgICAgICAgICAgciA9IDE7IGdvdG8gb3V0OworICAgICAgICB9CisgICAgfQorICAg IHJjID0geGNfZ250dGFiX2NvcHlfZ3JhbnQoZ250LCBjb3VudCwgZG9taWRzLCByZWZzLCBwYWdl cywgb2Zmc2V0LCBsZW4sIDEpOworCisgICAgaWYocmMpIHsKKyAgICAgICAgeGVuX2JlX3ByaW50 ZigmaW9yZXEtPmJsa2Rldi0+eGVuZGV2LCAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAiZmFp bGVkIHRvIGNvcHkgZGF0YSBmb3Igd3JpdGUgJWQgXG4iLCByYyk7CisKKyAgICAgICAgaWYoZnJl ZV9idWZmZXJzKGlvcmVxLT5wYWdlLCBpb3JlcS0+di5uaW92KSkgeworICAgICAgICAgICAgeGVu X2JlX3ByaW50ZigmaW9yZXEtPmJsa2Rldi0+eGVuZGV2LCAwLCAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgImZhaWxlZCB0byBmcmVlIHBhZ2UsIGVycm5vICVkIFxuIiwgZXJybm8pOworICAg ICAgICB9CisgICAgICAgIHIgPSAxOyBnb3RvIG91dDsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAw OyBpIDwgaW9yZXEtPnYubmlvdjsgaSsrKSB7CisgICAgICAgIGlvcmVxLT5wYWdlW2ldID0gcGFn ZXNbaV07CisgICAgICAgIGlvcmVxLT52LmlvdltpXS5pb3ZfYmFzZSArPSAodWludHB0cl90KXBh Z2VzW2ldOworICAgIH0KKworICAgIHIgPSAwOworb3V0OgorICAgIHJldHVybiByOworfQorCitz dGF0aWMgaW50IGlvcmVxX3JlYWRfaW5pdChzdHJ1Y3QgaW9yZXEgKmlvcmVxKSAKK3sKKyAgICBp bnQgaTsKKworICAgIGlmIChpb3JlcS0+di5uaW92ID09IDApIHsKKyAgICAgICAgcmV0dXJuIDA7 CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IGlvcmVxLT52Lm5pb3Y7IGkrKykgeworICAg ICAgICBpb3JlcS0+cGFnZVtpXSA9IGdldF9idWZmZXIoKTsKKyAgICAgICAgaWYoIWlvcmVxLT5w YWdlW2ldKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgaW9y ZXEtPnYuaW92W2ldLmlvdl9iYXNlICs9ICh1aW50cHRyX3QpaW9yZXEtPnBhZ2VbaV07CisgICAg fQorCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaW9yZXFfcmVhZChzdHJ1Y3QgaW9y ZXEgKmlvcmVxKSAKK3sKKyAgICBYZW5HbnR0YWIgZ250ID0gaW9yZXEtPmJsa2Rldi0+eGVuZGV2 LmdudHRhYmRldjsKKyAgICB1aW50MTZfdCBkb21pZHNbQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9S RVFVRVNUXTsKKyAgICB1aW50MzJfdCByZWZzW0JMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVT VF07CisgICAgdWludDMyX3Qgb2Zmc2V0W0JMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVF07 CisgICAgdWludDMyX3QgbGVuW0JMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVF07CisgICAg dm9pZCAqcGFnZXNbQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUXTsKKyAgICBpbnQgaSwg Y291bnQgPSAwLCByYzsKKworICAgIC8qIENvcHkgdGhlIGRhdGEgZnJvbSBsb2NhbCBidWZmZXJz IHRvIGd1ZXN0IGdyYW50IHBhZ2VzIGFkZHJlc3NlZCBieSAKKyAgICAgKiBkb21pZHMsIHJlZnMs IG9mZnNldCBvbiB0aGUgY29tcGxldGl0aW9uIG9mIHJlYWQgb3BlcmF0aW9uLgorICAgICAqLwor CisgICAgaWYgKGlvcmVxLT52Lm5pb3YgPT0gMCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9 CisKKyAgICBjb3VudCA9IGlvcmVxLT52Lm5pb3Y7CisgICAgZm9yIChpID0gMDsgaSA8IGNvdW50 OyBpKyspIHsKKyAgICAgICAgZG9taWRzW2ldID0gaW9yZXEtPmRvbWlkc1tpXTsKKyAgICAgICAg cmVmc1tpXSAgID0gaW9yZXEtPnJlZnNbaV07CisgICAgICAgIG9mZnNldFtpXSA9IGlvcmVxLT5y ZXEuc2VnW2ldLmZpcnN0X3NlY3QgKiBpb3JlcS0+YmxrZGV2LT5maWxlX2JsazsKKyAgICAgICAg bGVuW2ldID0gKGlvcmVxLT5yZXEuc2VnW2ldLmxhc3Rfc2VjdCAtIGlvcmVxLT5yZXEuc2VnW2ld LmZpcnN0X3NlY3QgKyAxKSAKKyAgICAgICAgICAgICAgICAgKiBpb3JlcS0+YmxrZGV2LT5maWxl X2JsazsKKyAgICAgICAgcGFnZXNbaV0gICA9IGlvcmVxLT52LmlvdltpXS5pb3ZfYmFzZTsKKyAg ICB9CisKKyAgICByYyA9IHhjX2dudHRhYl9jb3B5X2dyYW50KGdudCwgY291bnQsIGRvbWlkcywg cmVmcywgcGFnZXMsIG9mZnNldCwgbGVuLCAwKTsKKyAgICAKKyAgICBpZihyYykgeworICAgICAg ICB4ZW5fYmVfcHJpbnRmKCZpb3JlcS0+YmxrZGV2LT54ZW5kZXYsIDAsIAorICAgICAgICAgICAg ICAgICAgICAgICJmYWlsZWQgdG8gY29weSBkYXRhIHRvIGd1ZXN0ICVkIFxuIiwgcmMpOworICAg ICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQg aW9yZXFfcnVuaW9fcWVtdV9haW8oc3RydWN0IGlvcmVxICppb3JlcSk7CiAKIHN0YXRpYyB2b2lk IHFlbXVfYWlvX2NvbXBsZXRlKHZvaWQgKm9wYXF1ZSwgaW50IHJldCkKQEAgLTMxMyw2ICs0NjEs MjIgQEAgc3RhdGljIHZvaWQgcWVtdV9haW9fY29tcGxldGUodm9pZCAqb3BhcXVlLCBpbnQgcmV0 KQogICAgIH0KIAogICAgIGlvcmVxLT5zdGF0dXMgPSBpb3JlcS0+YWlvX2Vycm9ycyA/IEJMS0lG X1JTUF9FUlJPUiA6IEJMS0lGX1JTUF9PS0FZOworICAgIAorICAgIHN3aXRjaChpb3JlcS0+cmVx Lm9wZXJhdGlvbikgeworICAgIGNhc2UgQkxLSUZfT1BfUkVBRDogCisgICAgICAgIGlmKGlvcmVx X3JlYWQoaW9yZXEpKSB7CisgICAgICAgICAgICB4ZW5fYmVfcHJpbnRmKCZpb3JlcS0+YmxrZGV2 LT54ZW5kZXYsIDAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZmFpbGVkIHRvIGNvcHkg cmVhZCBkYXRhIHRvIGd1ZXN0XG4iKTsKKyAgICAgICAgfQorICAgIGNhc2UgQkxLSUZfT1BfV1JJ VEU6CisgICAgICAgIGlmKGZyZWVfYnVmZmVycyhpb3JlcS0+cGFnZSwgaW9yZXEtPnYubmlvdikp IHsKKyAgICAgICAgICAgIHhlbl9iZV9wcmludGYoJmlvcmVxLT5ibGtkZXYtPnhlbmRldiwgMCwg CisgICAgICAgICAgICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gZnJlZSBwYWdlLCBlcnJubyAl ZCBcbiIsIGVycm5vKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0Ogor ICAgICAgICBicmVhazsKKyAgICB9CiAKICAgICBpb3JlcV9maW5pc2goaW9yZXEpOwogICAgIHN3 aXRjaCAoaW9yZXEtPnJlcS5vcGVyYXRpb24pIHsKQEAgLTMzNSw2ICs0OTksMjcgQEAgc3RhdGlj IGludCBpb3JlcV9ydW5pb19xZW11X2FpbyhzdHJ1Y3QgaW9yZXEgKmlvcmVxKQogewogICAgIHN0 cnVjdCBYZW5CbGtEZXYgKmJsa2RldiA9IGlvcmVxLT5ibGtkZXY7CiAKKyAgICBzd2l0Y2ggKGlv cmVxLT5yZXEub3BlcmF0aW9uKSB7CisgICAgY2FzZSBCTEtJRl9PUF9SRUFEOgorICAgICAgICBp ZiAoaW9yZXFfcmVhZF9pbml0KGlvcmVxKSkgeworICAgICAgICAgICAgeGVuX2JlX3ByaW50Zigm aW9yZXEtPmJsa2Rldi0+eGVuZGV2LCAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImZh aWxlZCB0byBpbml0aWFsaXplIGJ1ZmZlcnMgZm9yIgorICAgICAgICAgICAgICAgICAgICAgICAg ICAiY29weSBkYXRhIHRvIGd1ZXN0ICVkIFxuIiwgZXJybm8pOworICAgICAgICAgICAgZ290byBv dXQ7CisgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQkxLSUZfT1BfV1JJ VEU6CisgICAgY2FzZSBCTEtJRl9PUF9GTFVTSF9ESVNLQ0FDSEU6CisgICAgICAgIGlmIChpb3Jl cV93cml0ZShpb3JlcSkpIHsKKyAgICAgICAgICAgIHhlbl9iZV9wcmludGYoJmlvcmVxLT5ibGtk ZXYtPnhlbmRldiwgMCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gd3Jp dGUgZGF0YSBmcm9tIGd1ZXN0XG4iKTsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9 CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKwog ICAgIGlvcmVxLT5haW9faW5mbGlnaHQrKzsKICAgICBpZiAoaW9yZXEtPnByZXN5bmMpIHsKICAg ICAgICAgYmxrX2Fpb19mbHVzaChpb3JlcS0+YmxrZGV2LT5ibGssIHFlbXVfYWlvX2NvbXBsZXRl LCBpb3JlcSk7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==