qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] blockdev: no need to drain in qmp_block_commit
@ 2015-05-28 14:21 Paolo Bonzini
  2015-05-29  1:44 ` Fam Zheng
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Paolo Bonzini @ 2015-05-28 14:21 UTC (permalink / raw)
  To: qemu-devel; +Cc: Kevin Wolf, jcody, open list:Block layer core

Draining is not necessary, I/O can happen as soon as the
commit coroutine yields.  Draining can be necessary before
reopening the file for read/write, or while modifying the
backing file chain, but that is done separately in
bdrv_reopen_multiple or bdrv_close; this particular
bdrv_drain_all does nothing for that.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 blockdev.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/blockdev.c b/blockdev.c
index d506a70..aee0395 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -2355,9 +2355,6 @@ void qmp_block_commit(const char *device,
     aio_context = bdrv_get_aio_context(bs);
     aio_context_acquire(aio_context);
 
-    /* drain all i/o before commits */
-    bdrv_drain_all();
-
     if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_COMMIT_SOURCE, errp)) {
         goto out;
     }
-- 
2.4.1

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

* Re: [Qemu-devel] [PATCH] blockdev: no need to drain in qmp_block_commit
  2015-05-28 14:21 [Qemu-devel] [PATCH] blockdev: no need to drain in qmp_block_commit Paolo Bonzini
@ 2015-05-29  1:44 ` Fam Zheng
  2015-05-29 12:43 ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
  2015-06-16  4:07 ` [Qemu-devel] " Jeff Cody
  2 siblings, 0 replies; 4+ messages in thread
From: Fam Zheng @ 2015-05-29  1:44 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Kevin Wolf, jcody, qemu-devel, open list:Block layer core



----- Original Message -----
> Draining is not necessary, I/O can happen as soon as the
> commit coroutine yields.  Draining can be necessary before
> reopening the file for read/write, or while modifying the
> backing file chain, but that is done separately in
> bdrv_reopen_multiple or bdrv_close; this particular
> bdrv_drain_all does nothing for that.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  blockdev.c | 3 ---
>  1 file changed, 3 deletions(-)
> 
> diff --git a/blockdev.c b/blockdev.c
> index d506a70..aee0395 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -2355,9 +2355,6 @@ void qmp_block_commit(const char *device,
>      aio_context = bdrv_get_aio_context(bs);
>      aio_context_acquire(aio_context);
>  
> -    /* drain all i/o before commits */
> -    bdrv_drain_all();
> -

Reviewed-by: Fam Zheng <famz@redhat.com>

>      if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_COMMIT_SOURCE, errp)) {
>          goto out;
>      }
> --
> 2.4.1
> 
> 
> 

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

* Re: [Qemu-devel] [Qemu-block] [PATCH] blockdev: no need to drain in qmp_block_commit
  2015-05-28 14:21 [Qemu-devel] [PATCH] blockdev: no need to drain in qmp_block_commit Paolo Bonzini
  2015-05-29  1:44 ` Fam Zheng
@ 2015-05-29 12:43 ` Stefan Hajnoczi
  2015-06-16  4:07 ` [Qemu-devel] " Jeff Cody
  2 siblings, 0 replies; 4+ messages in thread
From: Stefan Hajnoczi @ 2015-05-29 12:43 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel, open list:Block layer core

[-- Attachment #1: Type: text/plain, Size: 574 bytes --]

On Thu, May 28, 2015 at 04:21:43PM +0200, Paolo Bonzini wrote:
> Draining is not necessary, I/O can happen as soon as the
> commit coroutine yields.  Draining can be necessary before
> reopening the file for read/write, or while modifying the
> backing file chain, but that is done separately in
> bdrv_reopen_multiple or bdrv_close; this particular
> bdrv_drain_all does nothing for that.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  blockdev.c | 3 ---
>  1 file changed, 3 deletions(-)

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>

[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]

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

* Re: [Qemu-devel] [PATCH] blockdev: no need to drain in qmp_block_commit
  2015-05-28 14:21 [Qemu-devel] [PATCH] blockdev: no need to drain in qmp_block_commit Paolo Bonzini
  2015-05-29  1:44 ` Fam Zheng
  2015-05-29 12:43 ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
@ 2015-06-16  4:07 ` Jeff Cody
  2 siblings, 0 replies; 4+ messages in thread
From: Jeff Cody @ 2015-06-16  4:07 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Kevin Wolf, qemu-devel, open list:Block layer core

On Thu, May 28, 2015 at 04:21:43PM +0200, Paolo Bonzini wrote:
> Draining is not necessary, I/O can happen as soon as the
> commit coroutine yields.  Draining can be necessary before
> reopening the file for read/write, or while modifying the
> backing file chain, but that is done separately in
> bdrv_reopen_multiple or bdrv_close; this particular
> bdrv_drain_all does nothing for that.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  blockdev.c | 3 ---
>  1 file changed, 3 deletions(-)
> 
> diff --git a/blockdev.c b/blockdev.c
> index d506a70..aee0395 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -2355,9 +2355,6 @@ void qmp_block_commit(const char *device,
>      aio_context = bdrv_get_aio_context(bs);
>      aio_context_acquire(aio_context);
>  
> -    /* drain all i/o before commits */
> -    bdrv_drain_all();
> -
>      if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_COMMIT_SOURCE, errp)) {
>          goto out;
>      }
> -- 
> 2.4.1
>

Thanks, applied to my block tree:
https://github.com/codyprime/qemu-kvm-jtc/commits/block

-Jeff

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

end of thread, other threads:[~2015-06-16  4:08 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-28 14:21 [Qemu-devel] [PATCH] blockdev: no need to drain in qmp_block_commit Paolo Bonzini
2015-05-29  1:44 ` Fam Zheng
2015-05-29 12:43 ` [Qemu-devel] [Qemu-block] " Stefan Hajnoczi
2015-06-16  4:07 ` [Qemu-devel] " Jeff Cody

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).