[{"id":1775000,"web_url":"http://patchwork.ozlabs.org/comment/1775000/","msgid":"<0dd26890-560e-26a3-9997-1292be7aecdd@redhat.com>","list_archive_url":null,"date":"2017-09-25T22:18:15","subject":"Re: [Qemu-devel] [PATCH v10 00/20] make dirty-bitmap byte-based","submitter":{"id":64343,"url":"http://patchwork.ozlabs.org/api/people/64343/","name":"John Snow","email":"jsnow@redhat.com"},"content":"On 09/25/2017 10:55 AM, Eric Blake wrote:\n> There are patches floating around to add NBD_CMD_BLOCK_STATUS,\n> but NBD wants to report status on byte granularity (even if the\n> reporting will probably be naturally aligned to sectors or even\n> much higher levels).  I've therefore started the task of\n> converting our block status code to report at a byte granularity\n> rather than sectors.\n> \n> Now that 2.11 is open, I'm rebasing/reposting the remaining patches.\n> \n> The overall conversion currently looks like:\n> part 1: bdrv_is_allocated (merged in 2.10, commit 51b0a488)\n> part 2: dirty-bitmap (this series, v9 was here [1])\n> part 3: bdrv_get_block_status (v4 is posted [2] and is mostly reviewed)\n> part 4: .bdrv_co_block_status (v3 is posted [3], but needs review)\n> \n> Available as a tag at:\n> git fetch git://repo.or.cz/qemu/ericb.git nbd-byte-dirty-v10\n> \n> [1] https://lists.gnu.org/archive/html/qemu-devel/2017-09/msg05387.html\n> [2] https://lists.gnu.org/archive/html/qemu-devel/2017-09/msg03543.html\n> [3] https://lists.gnu.org/archive/html/qemu-devel/2017-09/msg03812.html\n> \n> Since v9:\n> - another try at patch 5 [John]\n> - add R-b where appropriate\n> \n> 001/20:[----] [--] 'block: Make bdrv_img_create() size selection easier to read'\n> 002/20:[----] [--] 'hbitmap: Rename serialization_granularity to serialization_align'\n> 003/20:[----] [--] 'qcow2: Ensure bitmap serialization is aligned'\n> 004/20:[----] [--] 'dirty-bitmap: Drop unused functions'\n> 005/20:[0003] [FC] 'dirty-bitmap: Avoid size query failure during truncate'\n> 006/20:[----] [--] 'dirty-bitmap: Change bdrv_dirty_bitmap_size() to report bytes'\n> 007/20:[----] [--] 'dirty-bitmap: Track bitmap size by bytes'\n> 008/20:[----] [--] 'dirty-bitmap: Change bdrv_dirty_bitmap_*serialize*() to take bytes'\n> 009/20:[----] [--] 'qcow2: Switch sectors_covered_by_bitmap_cluster() to byte-based'\n> 010/20:[----] [--] 'dirty-bitmap: Set iterator start by offset, not sector'\n> 011/20:[----] [--] 'dirty-bitmap: Change bdrv_dirty_iter_next() to report byte offset'\n> 012/20:[----] [--] 'dirty-bitmap: Change bdrv_get_dirty_count() to report bytes'\n> 013/20:[----] [--] 'dirty-bitmap: Change bdrv_get_dirty_locked() to take bytes'\n> 014/20:[----] [--] 'dirty-bitmap: Change bdrv_[re]set_dirty_bitmap() to use bytes'\n> 015/20:[----] [--] 'mirror: Switch mirror_dirty_init() to byte-based iteration'\n> 016/20:[----] [--] 'qcow2: Switch qcow2_measure() to byte-based iteration'\n> 017/20:[----] [--] 'qcow2: Switch load_bitmap_data() to byte-based iteration'\n> 018/20:[----] [--] 'qcow2: Switch store_bitmap_data() to byte-based iteration'\n> 019/20:[----] [--] 'dirty-bitmap: Switch bdrv_set_dirty() to bytes'\n> 020/20:[----] [--] 'dirty-bitmap: Convert internal hbitmap size/granularity'\n> \n> Eric Blake (20):\n>   block: Make bdrv_img_create() size selection easier to read\n>   hbitmap: Rename serialization_granularity to serialization_align\n>   qcow2: Ensure bitmap serialization is aligned\n>   dirty-bitmap: Drop unused functions\n>   dirty-bitmap: Avoid size query failure during truncate\n>   dirty-bitmap: Change bdrv_dirty_bitmap_size() to report bytes\n>   dirty-bitmap: Track bitmap size by bytes\n>   dirty-bitmap: Change bdrv_dirty_bitmap_*serialize*() to take bytes\n>   qcow2: Switch sectors_covered_by_bitmap_cluster() to byte-based\n>   dirty-bitmap: Set iterator start by offset, not sector\n>   dirty-bitmap: Change bdrv_dirty_iter_next() to report byte offset\n>   dirty-bitmap: Change bdrv_get_dirty_count() to report bytes\n>   dirty-bitmap: Change bdrv_get_dirty_locked() to take bytes\n>   dirty-bitmap: Change bdrv_[re]set_dirty_bitmap() to use bytes\n>   mirror: Switch mirror_dirty_init() to byte-based iteration\n>   qcow2: Switch qcow2_measure() to byte-based iteration\n>   qcow2: Switch load_bitmap_data() to byte-based iteration\n>   qcow2: Switch store_bitmap_data() to byte-based iteration\n>   dirty-bitmap: Switch bdrv_set_dirty() to bytes\n>   dirty-bitmap: Convert internal hbitmap size/granularity\n> \n>  include/block/block_int.h    |   2 +-\n>  include/block/dirty-bitmap.h |  43 ++++++--------\n>  include/qemu/hbitmap.h       |   8 +--\n>  block/io.c                   |   6 +-\n>  block.c                      |  18 ++++--\n>  block/backup.c               |   7 +--\n>  block/dirty-bitmap.c         | 134 ++++++++++++++-----------------------------\n>  block/mirror.c               |  79 +++++++++++--------------\n>  block/qcow2-bitmap.c         |  62 +++++++++++---------\n>  block/qcow2.c                |  22 ++++---\n>  migration/block.c            |  12 ++--\n>  tests/test-hbitmap.c         |  10 ++--\n>  util/hbitmap.c               |   8 +--\n>  tests/qemu-iotests/165       |   2 +-\n>  14 files changed, 174 insertions(+), 239 deletions(-)\n> \n\nTested-by: John Snow <jsnow@redhat.com>\n\n(Just in case I had to merge it, I ran tests.)","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx08.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx08.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=jsnow@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3y1JQx2GX2z9s7G\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 26 Sep 2017 08:19:21 +1000 (AEST)","from localhost ([::1]:44539 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dwbih-0007aP-Aq\n\tfor incoming@patchwork.ozlabs.org; Mon, 25 Sep 2017 18:19:19 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:58384)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <jsnow@redhat.com>) id 1dwbhu-0007VZ-0u\n\tfor qemu-devel@nongnu.org; Mon, 25 Sep 2017 18:18:34 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <jsnow@redhat.com>) id 1dwbhs-0006qO-Nn\n\tfor qemu-devel@nongnu.org; Mon, 25 Sep 2017 18:18:30 -0400","from mx1.redhat.com ([209.132.183.28]:40410)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <jsnow@redhat.com>)\n\tid 1dwbhj-0006n2-Sj; Mon, 25 Sep 2017 18:18:20 -0400","from smtp.corp.redhat.com\n\t(int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id D117EC0587E8;\n\tMon, 25 Sep 2017 22:18:18 +0000 (UTC)","from [10.18.17.130] (dhcp-17-130.bos.redhat.com [10.18.17.130])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 1211A6CDCF;\n\tMon, 25 Sep 2017 22:18:15 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com D117EC0587E8","To":"Eric Blake <eblake@redhat.com>, qemu-devel@nongnu.org","References":"<20170925145526.32690-1-eblake@redhat.com>","From":"John Snow <jsnow@redhat.com>","Message-ID":"<0dd26890-560e-26a3-9997-1292be7aecdd@redhat.com>","Date":"Mon, 25 Sep 2017 18:18:15 -0400","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<20170925145526.32690-1-eblake@redhat.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.14","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.32]);\n\tMon, 25 Sep 2017 22:18:18 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH v10 00/20] make dirty-bitmap byte-based","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"kwolf@redhat.com, vsementsov@virtuozzo.com, famz@redhat.com,\n\tqemu-block@nongnu.org","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"}},{"id":1778443,"web_url":"http://patchwork.ozlabs.org/comment/1778443/","msgid":"<20171002162244.GH4362@localhost.localdomain>","list_archive_url":null,"date":"2017-10-02T16:22:44","subject":"Re: [Qemu-devel] [PATCH v10 00/20] make dirty-bitmap byte-based","submitter":{"id":2714,"url":"http://patchwork.ozlabs.org/api/people/2714/","name":"Kevin Wolf","email":"kwolf@redhat.com"},"content":"Am 25.09.2017 um 16:55 hat Eric Blake geschrieben:\n> There are patches floating around to add NBD_CMD_BLOCK_STATUS,\n> but NBD wants to report status on byte granularity (even if the\n> reporting will probably be naturally aligned to sectors or even\n> much higher levels).  I've therefore started the task of\n> converting our block status code to report at a byte granularity\n> rather than sectors.\n> \n> Now that 2.11 is open, I'm rebasing/reposting the remaining patches.\n> \n> The overall conversion currently looks like:\n> part 1: bdrv_is_allocated (merged in 2.10, commit 51b0a488)\n> part 2: dirty-bitmap (this series, v9 was here [1])\n> part 3: bdrv_get_block_status (v4 is posted [2] and is mostly reviewed)\n> part 4: .bdrv_co_block_status (v3 is posted [3], but needs review)\n> \n> Available as a tag at:\n> git fetch git://repo.or.cz/qemu/ericb.git nbd-byte-dirty-v10\n\nThanks, applied to the block branch.\n\nKevin","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@gnu.org;\n\treceiver=<UNKNOWN>)","ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=kwolf@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3y5SCJ0K4Fz9t5s\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue,  3 Oct 2017 03:23:39 +1100 (AEDT)","from localhost ([::1]:53297 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@gnu.org>)\n\tid 1dz3VB-0002Nb-Lx\n\tfor incoming@patchwork.ozlabs.org; Mon, 02 Oct 2017 12:23:29 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:59601)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <kwolf@redhat.com>) id 1dz3Uo-0002Mt-Fa\n\tfor qemu-devel@nongnu.org; Mon, 02 Oct 2017 12:23:07 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <kwolf@redhat.com>) id 1dz3Uk-0005kR-JF\n\tfor qemu-devel@nongnu.org; Mon, 02 Oct 2017 12:23:06 -0400","from mx1.redhat.com ([209.132.183.28]:60872)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <kwolf@redhat.com>)\n\tid 1dz3Ug-0005f5-7N; Mon, 02 Oct 2017 12:22:58 -0400","from smtp.corp.redhat.com\n\t(int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 863EA7E430;\n\tMon,  2 Oct 2017 16:22:54 +0000 (UTC)","from localhost.localdomain (ovpn-116-161.ams2.redhat.com\n\t[10.36.116.161])\n\tby smtp.corp.redhat.com (Postfix) with ESMTPS id 25D5C6FDB0;\n\tMon,  2 Oct 2017 16:22:45 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 863EA7E430","Date":"Mon, 2 Oct 2017 18:22:44 +0200","From":"Kevin Wolf <kwolf@redhat.com>","To":"Eric Blake <eblake@redhat.com>","Message-ID":"<20171002162244.GH4362@localhost.localdomain>","References":"<20170925145526.32690-1-eblake@redhat.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20170925145526.32690-1-eblake@redhat.com>","User-Agent":"Mutt/1.9.0 (2017-09-02)","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.13","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.27]);\n\tMon, 02 Oct 2017 16:22:56 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"Re: [Qemu-devel] [PATCH v10 00/20] make dirty-bitmap byte-based","X-BeenThere":"qemu-devel@gnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.gnu.org>","List-Unsubscribe":"<https://lists.gnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@gnu.org?subject=unsubscribe>","List-Archive":"<http://lists.gnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@gnu.org>","List-Help":"<mailto:qemu-devel-request@gnu.org?subject=help>","List-Subscribe":"<https://lists.gnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@gnu.org?subject=subscribe>","Cc":"famz@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com,\n\tqemu-devel@nongnu.org, qemu-block@nongnu.org","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@gnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@gnu.org>"}}]