From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47882) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YMCDD-0001x2-Do for qemu-devel@nongnu.org; Fri, 13 Feb 2015 04:07:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YMCDA-0008Gc-8K for qemu-devel@nongnu.org; Fri, 13 Feb 2015 04:06:59 -0500 Received: from mx2.parallels.com ([199.115.105.18]:46864) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YMCDA-0008G9-1u for qemu-devel@nongnu.org; Fri, 13 Feb 2015 04:06:56 -0500 Message-ID: <54DDBEA5.3020506@parallels.com> Date: Fri, 13 Feb 2015 12:06:45 +0300 From: Vladimir Sementsov-Ogievskiy MIME-Version: 1.0 References: <1422356197-5285-1-git-send-email-vsementsov@parallels.com> <1422356197-5285-9-git-send-email-vsementsov@parallels.com> <54DA793C.9020707@redhat.com> <54DDB398.3010907@parallels.com> In-Reply-To: <54DDB398.3010907@parallels.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH RFC v2 8/8] migration: add migration/dirty-bitmap.c List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: John Snow , qemu-devel@nongnu.org Cc: kwolf@redhat.com, Peter Maydell , "Juan quin >> Juan Jose Quintela Carreira" , "Dr. David Alan Gilbert" , stefanha@redhat.com, pbonzini@redhat.com, amit Shah , den@openvz.org >> >>> + >>> + blk_mig_reset_dirty_cursor(); >>> + dirty_phase(f, false); >>> + >>> + QSIMPLEQ_FOREACH(dbms, &dirty_bitmap_mig_state.dbms_list, entry) { >>> + uint8_t flags = DIRTY_BITMAP_MIG_FLAG_DEVICE_NAME | >>> + DIRTY_BITMAP_MIG_FLAG_BITMAP_NAME | >>> + DIRTY_BITMAP_MIG_FLAG_ENABLED; >>> + >>> + qemu_put_byte(f, flags); >>> + qemu_put_name(f, bdrv_get_device_name(dbms->bs)); >>> + qemu_put_name(f, bdrv_dirty_bitmap_name(dbms->bitmap)); >>> + qemu_put_byte(f, bdrv_dirty_bitmap_enabled(dbms->bitmap)); >>> + } >>> + >>> + qemu_put_byte(f, DIRTY_BITMAP_MIG_FLAG_EOS); >>> + >>> + DPRINTF("Dirty bitmaps migration completed\n"); >>> + >>> + dirty_bitmap_mig_cleanup(); >>> + return 0; >>> +} >>> + >> >> I suppose we don't need a flag that distinctly SAYS this is the end >> section, since we can tell by omission of >> DIRTY_BITMAP_MIG_FLAG_NORMAL_CHUNK or ZERO_CHUNK. > Hmm. I think it simplifies the logic (to use EOS after each section). > And the same approach is in migration/block.c.. It's a question about > which format is better: "Each section for dirty_bitmap_load ends with > EOS" or "Each section for dirty_bitmap_load ends with EOS except the > last one. The last one may be recognized by absent NORMAL_CHUNK and > ZERO_CHUNK" Oh, sorry, no, it's important EOS. There are several blocks with no *_CHUNK! Several bitmaps. And loop in dirty_bitmap_load will read them iteratively, and it will finish when find EOS. -- Best regards, Vladimir