From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56165) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZYH4x-0003VV-NT for qemu-devel@nongnu.org; Sat, 05 Sep 2015 13:16:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZYH4u-0000tH-Hq for qemu-devel@nongnu.org; Sat, 05 Sep 2015 13:16:39 -0400 Received: from relay.parallels.com ([195.214.232.42]:54322) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZYH4u-0000t6-9Y for qemu-devel@nongnu.org; Sat, 05 Sep 2015 13:16:36 -0400 Message-ID: <55EB2366.8030202@virtuozzo.com> Date: Sat, 5 Sep 2015 20:16:22 +0300 From: Vladimir Sementsov-Ogievskiy MIME-Version: 1.0 References: <1441471439-6157-1-git-send-email-vsementsov@virtuozzo.com> In-Reply-To: <1441471439-6157-1-git-send-email-vsementsov@virtuozzo.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v3 RFC 0/17] block: persistent dirty bitmaps List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, stefanha@redhat.com, pbonzini@redhat.com, den@openvz.org, jsnow@redhat.com Add feature: Periodic flushing of the bitmaps The idea: Disk is written often. Bitmap is updated more seldom. HBitmap previous level is updated even more seldom.. To not store all bitmap levels in file, just save in the image file the number of largest consistent level: flush bitmap: consistent_level = HBITMAP_MAX_LEVEL change bitmap level X: if consistent_level > X then consistent_level = X - 1 (and flush consistent_level to file) Then, after fail, we can restore the bitmap from last consistent level: gran = 1 << (level_bits * (HBITMAP_MAX_LEVEL - consistent_level)) bitmap[i] = bitmap[i - i % gran] OR bitmap[i - i % gran + 1] OR ... OR bitmap[i - i % gran + (gran - 1)] to make this scheme independent of HBitmap, it may be better to number levels from 0 (0 is largest level), and save level_bits to Image file too. -- Best regards, Vladimir * now, @virtuozzo.com instead of @parallels.com. Sorry for this inconvenience.