From: Kevin Wolf <kwolf@redhat.com>
To: Dimitris Aragiorgis <dimara@arrikto.com>
Cc: pbonzini@redhat.com, stefanha@redhat.com, qemu-devel@nongnu.org,
qemu-block@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 2/5] Fix migration in case of scsi-generic
Date: Mon, 11 May 2015 12:12:23 +0200 [thread overview]
Message-ID: <20150511101223.GD4962@noname.redhat.com> (raw)
In-Reply-To: <1431107242-31947-3-git-send-email-dimara@arrikto.com>
Am 08.05.2015 um 19:47 hat Dimitris Aragiorgis geschrieben:
> During migration, QEMU uses fsync()/fdatasync() on the open file
> descriptor for read-write block devices to flush data just before
> stopping the VM.
>
> However, fsync() on a scsi-generic device returns -EINVAL which
> causes the migration to fail. This patch skips flushing data in case
> of an SG device, since submitting SCSI commands directly via an SG
> character device (e.g. /dev/sg0) bypasses the page cache completely,
> anyway.
fsync() doesn't only flush the kernel page cache, but also the disk
cache. The full justification includes at least that the scsi-generic
device never sends flushes, and for migration it's assumed that the same
SCSI device is used by the destination host (rather than another way to
access the same backing storage). If this were not enough, we would have
to send a SCSI flush command.
On another note, I expect we still neglect to check bs_is_sg() in too
many places. Any monitor command that does normal I/O on such a BDS
should actually fail.
> Remove the bdrv_is_sg() test from iscsi_co_flush() since this is
> now redundant (we flush the underlying protocol at the end
> of bdrv_co_flush() which, with this patch, we never reach).
>
> Signed-off-by: Dimitris Aragiorgis <dimara@arrikto.com>
> ---
> block/io.c | 2 +-
> block/iscsi.c | 4 ----
> 2 files changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/block/io.c b/block/io.c
> index 1ce62c4..d248a4d 100644
> --- a/block/io.c
> +++ b/block/io.c
> @@ -2231,7 +2231,7 @@ int coroutine_fn bdrv_co_flush(BlockDriverState *bs)
> {
> int ret;
>
> - if (!bs || !bdrv_is_inserted(bs) || bdrv_is_read_only(bs)) {
> + if (!bs || !bdrv_is_inserted(bs) || bdrv_is_read_only(bs) || bdrv_is_sg(bs)) {
This line exceeds 80 characters.
Kevin
next prev parent reply other threads:[~2015-05-11 10:12 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-08 17:47 [Qemu-devel] [PATCH v2 0/5] Some fixes related to scsi-generic Dimitris Aragiorgis
2015-05-08 17:47 ` [Qemu-devel] [PATCH v2 1/5] block: Use bdrv_is_sg() everywhere Dimitris Aragiorgis
2015-05-11 10:04 ` Kevin Wolf
2015-05-08 17:47 ` [Qemu-devel] [PATCH v2 2/5] Fix migration in case of scsi-generic Dimitris Aragiorgis
2015-05-11 10:12 ` Kevin Wolf [this message]
2015-05-14 11:02 ` Dimitris Aragiorgis
2015-05-14 13:21 ` Paolo Bonzini
2015-05-08 17:47 ` [Qemu-devel] [PATCH v2 3/5] raw-posix: DPRINTF instead of DEBUG_BLOCK_PRINT Dimitris Aragiorgis
2015-05-08 20:10 ` Eric Blake
2015-05-11 16:52 ` Eric Blake
2015-05-11 10:16 ` Kevin Wolf
2015-05-11 10:21 ` Paolo Bonzini
2015-05-08 17:47 ` [Qemu-devel] [PATCH v2 4/5] raw-posix: Use DPRINTF for DEBUG_FLOPPY Dimitris Aragiorgis
2015-05-11 10:19 ` Kevin Wolf
2015-05-08 17:47 ` [Qemu-devel] [PATCH v2 5/5] raw-posix: Introduce hdev_is_sg() Dimitris Aragiorgis
2015-05-10 14:04 ` [Qemu-devel] [PATCH v2 0/5] Some fixes related to scsi-generic Paolo Bonzini
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=20150511101223.GD4962@noname.redhat.com \
--to=kwolf@redhat.com \
--cc=dimara@arrikto.com \
--cc=pbonzini@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).