From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34801) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aaQ5V-0000iN-6u for qemu-devel@nongnu.org; Mon, 29 Feb 2016 10:50:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aaQ5P-0001Km-BC for qemu-devel@nongnu.org; Mon, 29 Feb 2016 10:50:21 -0500 Received: from mx2.parallels.com ([199.115.105.18]:48904) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aaQ5P-0001K4-5O for qemu-devel@nongnu.org; Mon, 29 Feb 2016 10:50:15 -0500 Message-ID: <56D468A3.8070801@virtuozzo.com> Date: Mon, 29 Feb 2016 18:49:55 +0300 From: Vladimir Sementsov-Ogievskiy MIME-Version: 1.0 References: <1455722949-17060-1-git-send-email-vsementsov@virtuozzo.com> <56D0C6A2.70305@redhat.com> In-Reply-To: <56D0C6A2.70305@redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v4 RFC 00/17] qcow2: persistent dirty bitmaps List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: John Snow , qemu-devel@nongnu.org Cc: kwolf@redhat.com, famz@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com, stefanha@redhat.com, den@openvz.org, pbonzini@redhat.com On 27.02.2016 00:41, John Snow wrote: > Do you have this mirrored in a git repo so I can browse it more > effectively? I can't figure out what all the prerequisite patches are, > so it will be convenient to just have a repo in that case for the RFC. done: https://src.openvz.org/users/vsementsov/repos/qemu/browse > > On 02/17/2016 10:28 AM, Vladimir Sementsov-Ogievskiy wrote: >> This series add persistent dirty bitmaps feature to qcow2. >> Specification is in docs/spec/qcow2.txt (not merged yet, see >> [PATCH v10] spec: add qcow2 bitmaps extension specification) >> >> This series are based on Fam's >> [PATCH v2 00/13] Dirty bitmap changes for migration/persistence work >> (meta bitmaps not used, and only hbitmap_deserialize_finish from >> serialization) >> >> This also needs some preparation patches, most of them are in my >> bitmap-migration series. I've not listed them here to keep things >> simpler, this is RFC any way. >> >> v4: >> >> Previous version was posted more than five months ago, so I will not >> carefully list all changes. >> >> What should be noted: >> - some changes are made to sutisfy last version of specification >> - removed staff, related to possibility of saving bitmaps for one >> disk in the other qcow2. >> - to make bitmap store/load zero-copy, I've moved load/store code to >> HBitmap - this is new patch 01. >> so, bdrv_dirty_bitmap_serialize_part and friends are not needed, >> only hbitmap_deserialize_finish, to repair bitmap consistency after >> loading its last level. >> - two patches added about AUTO and EXTRA_DATA_COMPATIBLE flags >> - some fixes made after John's comments on v3 >> >> Vladimir Sementsov-Ogievskiy (17): >> hbitmap: load/store >> qcow2: Bitmaps extension: structs and consts >> qcow2-dirty-bitmap: read dirty bitmap directory >> qcow2-dirty-bitmap: add qcow2_bitmap_load() >> qcow2-dirty-bitmap: add qcow2_bitmap_store() >> qcow2: add dirty bitmaps extension >> qcow2-dirty-bitmap: add qcow2_bitmap_load_check() >> block: store persistent dirty bitmaps >> block: add bdrv_load_dirty_bitmap() >> qcow2-dirty-bitmap: add autoclear bit >> qemu: command line option for dirty bitmaps >> qcow2-dirty-bitmap: add IN_USE flag >> qcow2-dirty-bitmaps: disallow stroing bitmap to other bs >> iotests: add VM.test_launcn() >> iotests: test internal persistent dirty bitmap >> qcow2-dirty-bitmap: add AUTO flag >> qcow2-dirty-bitmap: add EXTRA_DATA_COMPATIBLE flag >> >> block.c | 3 + >> block/Makefile.objs | 2 +- >> block/dirty-bitmap.c | 101 +++++ >> block/qcow2-dirty-bitmap.c | 839 ++++++++++++++++++++++++++++++++++++++++++ >> block/qcow2.c | 105 +++++- >> block/qcow2.h | 59 +++ >> blockdev.c | 36 ++ >> include/block/block_int.h | 9 + >> include/block/dirty-bitmap.h | 21 ++ >> include/qemu/hbitmap.h | 12 + >> include/sysemu/blockdev.h | 1 + >> include/sysemu/sysemu.h | 1 + >> qemu-options.hx | 35 ++ >> tests/qemu-iotests/160 | 112 ++++++ >> tests/qemu-iotests/160.out | 21 ++ >> tests/qemu-iotests/group | 1 + >> tests/qemu-iotests/iotests.py | 25 ++ >> util/hbitmap.c | 182 +++++++++ >> vl.c | 78 ++++ >> 19 files changed, 1640 insertions(+), 3 deletions(-) >> create mode 100644 block/qcow2-dirty-bitmap.c >> create mode 100755 tests/qemu-iotests/160 >> create mode 100644 tests/qemu-iotests/160.out >> -- Best regards, Vladimir