qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Max Reitz <mreitz@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>,
	qemu-devel@nongnu.org, qemu-block@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 7/8] block: Move some bdrv_*_all() functions to BB
Date: Tue, 1 Dec 2015 17:01:05 +0100	[thread overview]
Message-ID: <20151201160105.GF6527@noname.str.redhat.com> (raw)
In-Reply-To: <1447126069-6185-8-git-send-email-mreitz@redhat.com>

Am 10.11.2015 um 04:27 hat Max Reitz geschrieben:
> Move bdrv_drain_all(), bdrv_commit_all(), bdrv_flush_all() and
> bdrv_invalidate_cache_all() to BB.
> 
> The only operation left is bdrv_close_all(), which cannot be moved to
> the BB because it should not only close all BBs, but also all
> monitor-owned BDSs.
> 
> Signed-off-by: Max Reitz <mreitz@redhat.com>

bdrv_commit_all() and bdrv_flush_all() are relatively obvious. They are
meant to commit/flush changes made by a guest, so moving to the BB level
seems right.

I'm not so sure about bdrv_invalidate_cache_all(). Even if a BB isn't
attached to a BDS, we still need to invalidate the caches of any images
that have been opened before migration has completed, including those
images that are only owned by the monitor.

Similarly I'm concerned about bdrv_drain_all(). Anything outside the
block layer should certainly call blk_drain_all() because it can only be
interested in those images that it can see. The calls in block.c,
however, look like they should consider BDSes without a BB as well. (The
monitor, which can hold direct BDS references, may be another valid user
of a bdrv_drain_all that also covers BDSes without a BB.)

And block.c calling blk_*() functions smells a bit fishy anyway.

Kevin

  reply	other threads:[~2015-12-01 16:01 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-10  3:27 [Qemu-devel] [PATCH v2 0/8] blockdev: Further BlockBackend work Max Reitz
2015-11-10  3:27 ` [Qemu-devel] [PATCH v2 1/8] block: Add blk_name_taken() Max Reitz
2015-11-10  3:27 ` [Qemu-devel] [PATCH v2 2/8] block: Add blk_next_inserted() Max Reitz
2015-11-11 15:33   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2015-11-10  3:27 ` [Qemu-devel] [PATCH v2 3/8] block: Add blk_commit_all() and blk_invalidate_cache_all() Max Reitz
2015-11-10  3:27 ` [Qemu-devel] [PATCH v2 4/8] block: Use BlockBackend more Max Reitz
2015-11-10  3:27 ` [Qemu-devel] [PATCH v2 5/8] blockdev: Add list of monitor-owned BlockBackends Max Reitz
2015-11-10  3:27 ` [Qemu-devel] [PATCH v2 6/8] blockdev: Remove blk_hide_on_behalf_of_hmp_drive_del() Max Reitz
2015-11-10  3:27 ` [Qemu-devel] [PATCH v2 7/8] block: Move some bdrv_*_all() functions to BB Max Reitz
2015-12-01 16:01   ` Kevin Wolf [this message]
2015-12-04 23:15     ` Max Reitz
2015-12-07 11:16       ` Kevin Wolf
2015-11-10  3:27 ` [Qemu-devel] [PATCH v2 8/8] block: Remove bdrv_states Max Reitz
2015-11-25 13:50   ` Kevin Wolf
2015-11-10  3:45 ` [Qemu-devel] [PATCH v2 0/8] blockdev: Further BlockBackend work Eric Blake
2015-11-10  3:49   ` Max Reitz
2015-11-10  3:58     ` Jeff Cody

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=20151201160105.GF6527@noname.str.redhat.com \
    --to=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /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).