qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL v2 0/1] Block patches for 2.5
@ 2015-12-02 15:47 Jeff Cody
  2015-12-02 15:47 ` [Qemu-devel] [PULL v2 1/1] mirror: Quiesce source during "mirror_exit" Jeff Cody
  2015-12-02 17:05 ` [Qemu-devel] [PULL v2 0/1] Block patches for 2.5 Peter Maydell
  0 siblings, 2 replies; 3+ messages in thread
From: Jeff Cody @ 2015-12-02 15:47 UTC (permalink / raw)
  To: qemu-block; +Cc: peter.maydell, jcody, famz, qemu-devel

The following changes since commit 9d7b969ea6d9663a94760c6c131481b366f4d38a:

  Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20151201' into staging (2015-12-02 10:16:53 +0000)

are available in the git repository at:


  git@github.com:codyprime/qemu-kvm-jtc.git tags/block-pull-request

for you to fetch changes up to 176c36997fd4a94a7b919468d8967e0ad81fdf9c:

  mirror: Quiesce source during "mirror_exit" (2015-12-02 10:44:06 -0500)

----------------------------------------------------------------
Block patches for 2.5
----------------------------------------------------------------

Fam Zheng (1):
  mirror: Quiesce source during "mirror_exit"

 block/mirror.c | 4 ++++
 1 file changed, 4 insertions(+)

-- 
1.9.3

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Qemu-devel] [PULL v2 1/1] mirror: Quiesce source during "mirror_exit"
  2015-12-02 15:47 [Qemu-devel] [PULL v2 0/1] Block patches for 2.5 Jeff Cody
@ 2015-12-02 15:47 ` Jeff Cody
  2015-12-02 17:05 ` [Qemu-devel] [PULL v2 0/1] Block patches for 2.5 Peter Maydell
  1 sibling, 0 replies; 3+ messages in thread
From: Jeff Cody @ 2015-12-02 15:47 UTC (permalink / raw)
  To: qemu-block; +Cc: peter.maydell, jcody, famz, qemu-devel

From: Fam Zheng <famz@redhat.com>

With dataplane, the ioeventfd events could be dispatched after
mirror_run releases the dirty bitmap, but before mirror_exit actually
does the device switch, because the iothread will still be running, and
it will cause silent data loss.

Fix this by adding a bdrv_drained_begin/end pair around the window, so
that no new external request will be handled.

Signed-off-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Jeff Cody <jcody@redhat.com>
---
 block/mirror.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/block/mirror.c b/block/mirror.c
index 52c9abf..0e8f556 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -388,6 +388,7 @@ static void mirror_exit(BlockJob *job, void *opaque)
     bdrv_unref(s->target);
     block_job_completed(&s->common, data->ret);
     g_free(data);
+    bdrv_drained_end(src);
     bdrv_unref(src);
 }
 
@@ -607,6 +608,9 @@ immediate_exit:
 
     data = g_malloc(sizeof(*data));
     data->ret = ret;
+    /* Before we switch to target in mirror_exit, make sure data doesn't
+     * change. */
+    bdrv_drained_begin(s->common.bs);
     block_job_defer_to_main_loop(&s->common, mirror_exit, data);
 }
 
-- 
1.9.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PULL v2 0/1] Block patches for 2.5
  2015-12-02 15:47 [Qemu-devel] [PULL v2 0/1] Block patches for 2.5 Jeff Cody
  2015-12-02 15:47 ` [Qemu-devel] [PULL v2 1/1] mirror: Quiesce source during "mirror_exit" Jeff Cody
@ 2015-12-02 17:05 ` Peter Maydell
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Maydell @ 2015-12-02 17:05 UTC (permalink / raw)
  To: Jeff Cody; +Cc: Fam Zheng, QEMU Developers, Qemu-block

On 2 December 2015 at 15:47, Jeff Cody <jcody@redhat.com> wrote:
> The following changes since commit 9d7b969ea6d9663a94760c6c131481b366f4d38a:
>
>   Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20151201' into staging (2015-12-02 10:16:53 +0000)
>
> are available in the git repository at:
>
>
>   git@github.com:codyprime/qemu-kvm-jtc.git tags/block-pull-request
>
> for you to fetch changes up to 176c36997fd4a94a7b919468d8967e0ad81fdf9c:
>
>   mirror: Quiesce source during "mirror_exit" (2015-12-02 10:44:06 -0500)
>
> ----------------------------------------------------------------
> Block patches for 2.5
> ----------------------------------------------------------------
>
> Fam Zheng (1):
>   mirror: Quiesce source during "mirror_exit"
>
>  block/mirror.c | 4 ++++
>  1 file changed, 4 insertions(+)

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-12-02 17:05 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-02 15:47 [Qemu-devel] [PULL v2 0/1] Block patches for 2.5 Jeff Cody
2015-12-02 15:47 ` [Qemu-devel] [PULL v2 1/1] mirror: Quiesce source during "mirror_exit" Jeff Cody
2015-12-02 17:05 ` [Qemu-devel] [PULL v2 0/1] Block patches for 2.5 Peter Maydell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).