qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 3/5] mirror: allow specifying working bitmap


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [PATCH v4 3/5] mirror: allow specifying working bitmap
Date: Mon, 24 Jun 2024 23:12:45 +0300
User-agent: Mozilla Thunderbird

On 21.05.24 15:20, Fiona Ebner wrote:
From: John Snow <jsnow@redhat.com>

for the mirror job. The bitmap's granularity is used as the job's
granularity.

The new @bitmap parameter is marked unstable in the QAPI and can
currently only be used for @sync=full mode.

Clusters initially dirty in the bitmap as well as new writes are
copied to the target.

Using block-dirty-bitmap-clear and block-dirty-bitmap-merge API,
callers can simulate the three kinds of @BitmapSyncMode (which is used

[..]

      /*
       * The dirty bitmap is set by bdrv_mirror_top_do_write() when not in 
active
-     * mode.
+     * mode. For external/caller-provided bitmap, need to wait until
+     * bdrv_mirror_top_do_write() can actually access it before disabling.

hmm, isn't that true at least for non-mode? for other modes we rely on 
mirror_dirty_init(), but with none mode we risk to miss some writes.. That's 
preexisting, but probably it's better to move disabling the bitmap to the 
moment where we sure that we do dirty it by hand on any not-immediatelly-synced 
write. And than have _disable_() call in same place for all scenarios.

       */
-    bdrv_disable_dirty_bitmap(s->dirty_bitmap);
+    if (s->dirty_bitmap_is_local) {
+        bdrv_disable_dirty_bitmap(s->dirty_bitmap);
+    }



--
Best regards,
Vladimir




reply via email to

[Prev in Thread] Current Thread [Next in Thread]