From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: qemu-block@nongnu.org, kwolf@redhat.com
Subject: [Qemu-devel] [PATCH v4 0/8] Call check and invalidate_cache from coroutine context
Date: Thu, 1 Mar 2018 17:36:11 +0100 [thread overview]
Message-ID: <20180301163619.21072-1-pbonzini@redhat.com> (raw)
Check and invalidate_cache share some parts of the implementation
with the regular I/O path. This is sometimes complicated because the
I/O path wants to use a CoMutex but that is not possible outside coroutine
context. By moving things to coroutine context, we can remove special
cases. In fact, invalidate_cache is already called from coroutine context
because incoming migration is placed in a coroutine.
I'm including two patches from Stefan to rename the bdrv_create callback
to bdrv_co_create, because it is already called from coroutine context.
The name is now bdrv_co_create_opts, with bdrv_co_create reserved for
the QAPI-based version that Kevin is working on.
qcow2 still has cache flushing in non-coroutine context, coming from
qcow2_reopen_prepare->qcow2_update_options_prepare,
qcow2_close->qcow2_inactivate and several dirty bitmap functions.
Paolo
v3->v4: added patch 4, patch 3 has to go before it
Paolo Bonzini (6):
qcow2: introduce qcow2_write_caches and qcow2_flush_caches
qcow2: fix flushing after dirty bitmap metadata writes
qcow2: make qcow2_do_open a coroutine_fn
qed: make bdrv_qed_do_open a coroutine_fn
block: convert bdrv_invalidate_cache callback to coroutine_fn
block: convert bdrv_check callback to coroutine_fn
Stefan Hajnoczi (2):
block: rename .bdrv_create() to .bdrv_co_create_opts()
qcow2: make qcow2_co_create2() a coroutine_fn
block.c | 88 ++++++++++++++++++++++++++++++----
block/crypto.c | 8 ++--
block/file-posix.c | 15 +++---
block/file-win32.c | 5 +-
block/gluster.c | 12 ++---
block/iscsi.c | 13 ++---
block/nfs.c | 11 +++--
block/parallels.c | 24 ++++++----
block/qcow.c | 5 +-
block/qcow2-bitmap.c | 4 +-
block/qcow2-refcount.c | 28 +++++++++++
block/qcow2.c | 118 +++++++++++++++++++++++++++++++---------------
block/qcow2.h | 2 +
block/qed-check.c | 1 +
block/qed-table.c | 26 ++++------
block/qed.c | 72 +++++++++++++++++++++-------
block/raw-format.c | 5 +-
block/rbd.c | 12 +++--
block/sheepdog.c | 10 ++--
block/ssh.c | 5 +-
block/vdi.c | 11 +++--
block/vhdx.c | 12 +++--
block/vmdk.c | 12 +++--
block/vpc.c | 5 +-
include/block/block_int.h | 11 +++--
25 files changed, 358 insertions(+), 157 deletions(-)
--
2.14.3
next reply other threads:[~2018-03-01 16:36 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-01 16:36 Paolo Bonzini [this message]
2018-03-01 16:36 ` [Qemu-devel] [PATCH 1/8] block: rename .bdrv_create() to .bdrv_co_create_opts() Paolo Bonzini
2018-03-01 19:23 ` Eric Blake
2018-03-01 16:36 ` [Qemu-devel] [PATCH 2/8] qcow2: make qcow2_co_create2() a coroutine_fn Paolo Bonzini
2018-03-01 22:56 ` Eric Blake
2018-03-01 16:36 ` [Qemu-devel] [PATCH 3/8] qcow2: introduce qcow2_write_caches and qcow2_flush_caches Paolo Bonzini
2018-03-02 1:33 ` Eric Blake
2018-03-01 16:36 ` [Qemu-devel] [PATCH 4/8] qcow2: fix flushing after dirty bitmap metadata writes Paolo Bonzini
2018-03-01 16:36 ` [Qemu-devel] [PATCH 5/8] qcow2: make qcow2_do_open a coroutine_fn Paolo Bonzini
2018-03-01 16:36 ` [Qemu-devel] [PATCH 6/8] qed: make bdrv_qed_do_open " Paolo Bonzini
2018-03-01 16:36 ` [Qemu-devel] [PATCH 7/8] block: convert bdrv_invalidate_cache callback to coroutine_fn Paolo Bonzini
2018-03-01 16:36 ` [Qemu-devel] [PATCH 8/8] block: convert bdrv_check " Paolo Bonzini
2018-03-06 13:59 ` [Qemu-devel] [PATCH v4 0/8] Call check and invalidate_cache from coroutine context Kevin Wolf
2018-03-06 14:28 ` Paolo Bonzini
2018-03-06 16:37 ` Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180301163619.21072-1-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).