From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35571) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUaLP-0008KQ-Rp for qemu-devel@nongnu.org; Tue, 02 Aug 2016 10:06:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bUaLL-0005e1-2J for qemu-devel@nongnu.org; Tue, 02 Aug 2016 10:06:55 -0400 Received: from mail-lf0-x241.google.com ([2a00:1450:4010:c07::241]:32999) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUaLK-0005dq-LC for qemu-devel@nongnu.org; Tue, 02 Aug 2016 10:06:50 -0400 Received: by mail-lf0-x241.google.com with SMTP id f93so10139246lfi.0 for ; Tue, 02 Aug 2016 07:06:50 -0700 (PDT) From: Paulina Szubarczyk Date: Tue, 2 Aug 2016 16:06:28 +0200 Message-Id: <1470146790-6168-1-git-send-email-paulinaszubarczyk@gmail.com> Subject: [Qemu-devel] [PATCH v4 0/2] qemu-qdisk: Implementation of grant copy operation. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xen-devel@lists.xenproject.org Cc: roger.pau@citrix.com, wei.liu2@citrix.com, ian.jackson@eu.citrix.com, david.vrabel@citrix.com, sstabellini@kernel.org, anthony.perard@citrix.com, qemu-devel@nongnu.org, Paulina Szubarczyk Hi, It is a proposition for implementation of grant copy operation in qemu-qdisk and interface in libxc/libs. Changes since v3: Interface: - revert to cast from xengnttab_grant_copy_segment_t to ioctl_gntdev_grant_copy. - added compile-time check to compare the libs xengnttab_grant_copy_segment_t with the ioctl structure. The patch relies on Wei patch introducing XENGNTTAB_BUILD_BUG_ON in libs/gnttab. qemu-qdisk: - qemu_memalign/qemu_free is used instead function allocating memory from xc. - removed the get_buffer function instead there is a direct call to qemu_memalign. - moved ioreq_copy for write operation to ioreq_runio_qemu_aio. - added struct xengnttab_grant_copy_segment_t and stub in xen_common.h for version of Xen earlier then 480. - added checking for version 480 to configure. The test repeats all the operation that are required for version < 480 and checks if xengnttab_grant_copy() is implemented. Changes since v2: Interface: - dropped the changes in libxc/include/xenctrl_compat - changed the MINOR version in Makefile - replaced 'return -1' -> 'abort()'in libs/gnttab/gnttab_unimp.c - moved the struct 'xengnttab_copy_grant_segment' to libs/gnttab/include/xengnttab.h - added explicit assingment to ioctl_gntdev_grant_copy_segment to the linux part qemu-qdisk: - to use the xengnttab_* function directly added -lxengnttab to configure and include in include/hw/xen/xen_common.h - in ioreq_copy removed an out path, changed a log level, made explicit assignement to 'xengnttab_copy_grant_segment' * I did not change the way of testing if grant_copy operation is implemented. As far as I understand if the code from gnttab_unimp.c is used then the gnttab device is unavailable and the handler to gntdev would be invalid. But if the handler is valid then the ioctl should return operation unimplemented if the gntdev does not implement the operation. Changes since v1: Interface: - changed the interface to call grant copy operation to match ioctl int xengnttab_grant_copy(xengnttab_handle *xgt, uint32_t count, xengnttab_grant_copy_segment_t* segs) - added a struct 'xengnttab_copy_grant_segment' definition to tools/libs /gnttab/private.h, tools/libxc/include/xenctrl_compat.h - changed the function 'osdep_gnttab_grant_copy' which right now just call the ioctl - added a new VER1.1 to tools/libs/gnttab/libxengnttab.map qemu-qdisk: - removed the 'ioreq_write','ioreq_read_init','ioreq_read' functions - implemented 'ioreq_init_copy_buffers', 'ioreq_copy' - reverted the removal of grant map and introduced conditional invoking grant copy or grant map - resigned from caching the local buffers on behalf of allocating the required amount of pages at once. The cached structure would require to have an lock guard and I suppose that the performance improvement would degraded. For the functional test I attached the device with a qdisk backend to the guest, mounted, performed some reads and writes. I run fio tests[1] with different iodepth and size of the block. The test can be accessed on my github[2] but mainly after the warm up I run for 60 seconds: fio --time_based \ --clocksource=clock_gettime \ --rw=randread \ --random_distribution=pareto:0.9 \ --size=10g \ --direct='1' \ --ioengine=libaio \ --filename=$DEV \ --iodepth=$IODEPTH \ --bs=$BS \ --name=$NAME \ --runtime=$RUNTIME >> $FILENAME The test were repeated at least three times. [1] https://docs.google.com/spreadsheets/d/1E6AMiB8ceJpExL6jWpH9u2yy6DZxzhmDUyFf-eUuJ0c/edit?usp=sharing [2] https://github.com/paulina-szubarczyk/xen-benchmark - multitest_with_iodepth.sh Thanks and regards, Paulina From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulina Szubarczyk Subject: [PATCH v4 0/2] qemu-qdisk: Implementation of grant copy operation. Date: Tue, 2 Aug 2016 16:06:28 +0200 Message-ID: <1470146790-6168-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bUaLS-0001b8-Rj for xen-devel@lists.xenproject.org; Tue, 02 Aug 2016 14:06:58 +0000 Received: by mail-lf0-f65.google.com with SMTP id l89so10135176lfi.2 for ; Tue, 02 Aug 2016 07:06:50 -0700 (PDT) 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 Cc: sstabellini@kernel.org, wei.liu2@citrix.com, Paulina Szubarczyk , ian.jackson@eu.citrix.com, qemu-devel@nongnu.org, david.vrabel@citrix.com, anthony.perard@citrix.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org SGksCgpJdCBpcyBhIHByb3Bvc2l0aW9uIGZvciBpbXBsZW1lbnRhdGlvbiBvZiBncmFudCBjb3B5 IG9wZXJhdGlvbiBpbiBxZW11LXFkaXNrIGFuZCBpbnRlcmZhY2UgaW4gbGlieGMvbGlicy4gCgpD aGFuZ2VzIHNpbmNlIHYzOgpJbnRlcmZhY2U6Ci0gcmV2ZXJ0IHRvIGNhc3QgZnJvbSB4ZW5nbnR0 YWJfZ3JhbnRfY29weV9zZWdtZW50X3QKICB0byBpb2N0bF9nbnRkZXZfZ3JhbnRfY29weS4KLSBh ZGRlZCBjb21waWxlLXRpbWUgY2hlY2sgdG8gY29tcGFyZSB0aGUgbGlicwogIHhlbmdudHRhYl9n cmFudF9jb3B5X3NlZ21lbnRfdCB3aXRoIHRoZSBpb2N0bCBzdHJ1Y3R1cmUuCiAgVGhlIHBhdGNo IHJlbGllcyBvbiBXZWkgcGF0Y2ggaW50cm9kdWNpbmcgWEVOR05UVEFCX0JVSUxEX0JVR19PTiBp biBsaWJzL2dudHRhYi4KCnFlbXUtcWRpc2s6Ci0gcWVtdV9tZW1hbGlnbi9xZW11X2ZyZWUgaXMg dXNlZCBpbnN0ZWFkIGZ1bmN0aW9uIGFsbG9jYXRpbmcKICBtZW1vcnkgZnJvbSB4Yy4KLSByZW1v dmVkIHRoZSBnZXRfYnVmZmVyIGZ1bmN0aW9uIGluc3RlYWQgdGhlcmUgaXMgYSBkaXJlY3QgY2Fs bAogIHRvIHFlbXVfbWVtYWxpZ24uCi0gbW92ZWQgaW9yZXFfY29weSBmb3Igd3JpdGUgb3BlcmF0 aW9uIHRvIGlvcmVxX3J1bmlvX3FlbXVfYWlvLgotIGFkZGVkIHN0cnVjdCB4ZW5nbnR0YWJfZ3Jh bnRfY29weV9zZWdtZW50X3QgYW5kIHN0dWIgaW4KICB4ZW5fY29tbW9uLmggZm9yIHZlcnNpb24g b2YgWGVuIGVhcmxpZXIgdGhlbiA0ODAuCi0gYWRkZWQgY2hlY2tpbmcgZm9yIHZlcnNpb24gNDgw IHRvIGNvbmZpZ3VyZS4gVGhlIHRlc3QgcmVwZWF0cwogIGFsbCB0aGUgb3BlcmF0aW9uIHRoYXQg YXJlIHJlcXVpcmVkIGZvciB2ZXJzaW9uIDwgNDgwIGFuZAogIGNoZWNrcyBpZiB4ZW5nbnR0YWJf Z3JhbnRfY29weSgpIGlzIGltcGxlbWVudGVkLgoKQ2hhbmdlcyBzaW5jZSB2MjoKSW50ZXJmYWNl OgotIGRyb3BwZWQgdGhlIGNoYW5nZXMgaW4gbGlieGMvaW5jbHVkZS94ZW5jdHJsX2NvbXBhdAot IGNoYW5nZWQgdGhlIE1JTk9SIHZlcnNpb24gaW4gTWFrZWZpbGUKLSByZXBsYWNlZCAncmV0dXJu IC0xJyAtPiAnYWJvcnQoKSdpbiBsaWJzL2dudHRhYi9nbnR0YWJfdW5pbXAuYwotIG1vdmVkIHRo ZSBzdHJ1Y3QgJ3hlbmdudHRhYl9jb3B5X2dyYW50X3NlZ21lbnQnIHRvIAogIGxpYnMvZ250dGFi L2luY2x1ZGUveGVuZ250dGFiLmgKLSBhZGRlZCBleHBsaWNpdCBhc3NpbmdtZW50IHRvIGlvY3Rs X2dudGRldl9ncmFudF9jb3B5X3NlZ21lbnQgCiAgdG8gdGhlIGxpbnV4IHBhcnQKCnFlbXUtcWRp c2s6Ci0gdG8gdXNlIHRoZSB4ZW5nbnR0YWJfKiBmdW5jdGlvbiBkaXJlY3RseSBhZGRlZCAtbHhl bmdudHRhYiB0byBjb25maWd1cmUKICBhbmQgaW5jbHVkZSA8eGVuZ250dGFiLmg+IGluIGluY2x1 ZGUvaHcveGVuL3hlbl9jb21tb24uaAotIGluIGlvcmVxX2NvcHkgcmVtb3ZlZCBhbiBvdXQgcGF0 aCwgY2hhbmdlZCBhIGxvZyBsZXZlbCwgbWFkZSBleHBsaWNpdCAKICBhc3NpZ25lbWVudCB0byAn eGVuZ250dGFiX2NvcHlfZ3JhbnRfc2VnbWVudCcKKiBJIGRpZCBub3QgY2hhbmdlIHRoZSB3YXkg b2YgdGVzdGluZyBpZiBncmFudF9jb3B5IG9wZXJhdGlvbiBpcyBpbXBsZW1lbnRlZC4KICBBcyBm YXIgYXMgSSB1bmRlcnN0YW5kIGlmIHRoZSBjb2RlIGZyb20gZ250dGFiX3VuaW1wLmMgaXMgdXNl ZCB0aGVuIHRoZSBnbnR0YWIgCiAgZGV2aWNlIGlzIHVuYXZhaWxhYmxlIGFuZCB0aGUgaGFuZGxl ciB0byBnbnRkZXYgd291bGQgYmUgaW52YWxpZC4gQnV0IAogIGlmIHRoZSBoYW5kbGVyIGlzIHZh bGlkIHRoZW4gdGhlIGlvY3RsIHNob3VsZCByZXR1cm4gb3BlcmF0aW9uIHVuaW1wbGVtZW50ZWQg CiAgaWYgdGhlIGdudGRldiBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIG9wZXJhdGlvbi4KCgpDaGFu Z2VzIHNpbmNlIHYxOgpJbnRlcmZhY2U6Ci0gY2hhbmdlZCB0aGUgaW50ZXJmYWNlIHRvIGNhbGwg Z3JhbnQgY29weSBvcGVyYXRpb24gdG8gbWF0Y2ggaW9jdGwKCWludCB4ZW5nbnR0YWJfZ3JhbnRf Y29weSh4ZW5nbnR0YWJfaGFuZGxlICp4Z3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAJIHVp bnQzMl90IGNvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgCSB4ZW5nbnR0YWJfZ3JhbnRf Y29weV9zZWdtZW50X3QqIHNlZ3MpCgotIGFkZGVkIGEgc3RydWN0ICd4ZW5nbnR0YWJfY29weV9n cmFudF9zZWdtZW50JyBkZWZpbml0aW9uIHRvIHRvb2xzL2xpYnMJCiAgL2dudHRhYi9wcml2YXRl LmgsIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybF9jb21wYXQuaAoKLSBjaGFuZ2VkIHRoZSBm dW5jdGlvbiAnb3NkZXBfZ250dGFiX2dyYW50X2NvcHknIHdoaWNoIHJpZ2h0IG5vdyBqdXN0CiAg Y2FsbCB0aGUgaW9jdGwKCi0gYWRkZWQgYSBuZXcgVkVSMS4xIHRvIHRvb2xzL2xpYnMvZ250dGFi L2xpYnhlbmdudHRhYi5tYXAgCgpxZW11LXFkaXNrOgotIHJlbW92ZWQgdGhlICdpb3JlcV93cml0 ZScsJ2lvcmVxX3JlYWRfaW5pdCcsJ2lvcmVxX3JlYWQnIGZ1bmN0aW9ucyAKLSBpbXBsZW1lbnRl ZCAnaW9yZXFfaW5pdF9jb3B5X2J1ZmZlcnMnLCAnaW9yZXFfY29weScgCi0gcmV2ZXJ0ZWQgdGhl IHJlbW92YWwgb2YgZ3JhbnQgbWFwIGFuZCBpbnRyb2R1Y2VkIGNvbmRpdGlvbmFsIGludm9raW5n CiAgZ3JhbnQgY29weSBvciBncmFudCBtYXAKLSByZXNpZ25lZCBmcm9tIGNhY2hpbmcgdGhlIGxv Y2FsIGJ1ZmZlcnMgb24gYmVoYWxmIG9mIGFsbG9jYXRpbmcgdGhlIAogIHJlcXVpcmVkIGFtb3Vu dCBvZiBwYWdlcyBhdCBvbmNlLiBUaGUgY2FjaGVkIHN0cnVjdHVyZSB3b3VsZCByZXF1aXJlIAog IHRvIGhhdmUgYW4gbG9jayBndWFyZCBhbmQgSSBzdXBwb3NlIHRoYXQgdGhlIHBlcmZvcm1hbmNl IGltcHJvdmVtZW50IAogIHdvdWxkIGRlZ3JhZGVkLiAKIAoKRm9yIHRoZSBmdW5jdGlvbmFsIHRl c3QgSSBhdHRhY2hlZCB0aGUgZGV2aWNlIHdpdGggYSBxZGlzayBiYWNrZW5kIHRvIHRoZSBndWVz dCwgCm1vdW50ZWQsIHBlcmZvcm1lZCBzb21lIHJlYWRzIGFuZCB3cml0ZXMuCgpJIHJ1biBmaW8g dGVzdHNbMV0gd2l0aCBkaWZmZXJlbnQgaW9kZXB0aCBhbmQgc2l6ZSBvZiB0aGUgYmxvY2suIFRo ZSB0ZXN0IGNhbiBiZSAKYWNjZXNzZWQgb24gbXkgZ2l0aHViWzJdIGJ1dCBtYWlubHkgYWZ0ZXIg dGhlIHdhcm0gdXAgSSBydW4gZm9yIDYwIHNlY29uZHM6CiAgICBmaW8gLS10aW1lX2Jhc2VkIFwK CQktLWNsb2Nrc291cmNlPWNsb2NrX2dldHRpbWUgXAoJCS0tcnc9cmFuZHJlYWQgXAoJCS0tcmFu ZG9tX2Rpc3RyaWJ1dGlvbj1wYXJldG86MC45IFwKCQktLXNpemU9MTBnIFwKCSAgICAtLWRpcmVj dD0nMScgXAoJICAgIC0taW9lbmdpbmU9bGliYWlvIFwKCQktLWZpbGVuYW1lPSRERVYgXAoJCS0t aW9kZXB0aD0kSU9ERVBUSCBcCgkJLS1icz0kQlMgXAoJCS0tbmFtZT0kTkFNRSBcCgkJLS1ydW50 aW1lPSRSVU5USU1FID4+ICRGSUxFTkFNRQpUaGUgdGVzdCB3ZXJlIHJlcGVhdGVkIGF0IGxlYXN0 IHRocmVlIHRpbWVzLiAKClsxXSBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9zcHJlYWRzaGVldHMv ZC8xRTZBTWlCOGNlSnBFeEw2aldwSDl1Mnl5NkRaeHpobURVeUZmLWVVdUowYy9lZGl0P3VzcD1z aGFyaW5nCgpbMl0gaHR0cHM6Ly9naXRodWIuY29tL3BhdWxpbmEtc3p1YmFyY3p5ay94ZW4tYmVu Y2htYXJrCiAgICAtIG11bHRpdGVzdF93aXRoX2lvZGVwdGguc2gKCgpUaGFua3MgYW5kIHJlZ2Fy ZHMsIApQYXVsaW5hCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBz Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK