From: Kevin Wolf <kwolf@redhat.com>
To: Avi Kivity <avi@redhat.com>
Cc: Lucas Meneghel Rodrigues <lmr@redhat.com>,
KVM mailing list <kvm@vger.kernel.org>,
"Michael S. Tsirkin" <mst@redhat.com>,
"libvir-list@redhat.com" <libvir-list@redhat.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
QEMU devel <qemu-devel@nongnu.org>,
Juan Jose Quintela Carreira <quintela@redhat.com>
Subject: Re: [Qemu-devel] qemu and qemu.git -> Migration + disk stress introduces qcow2 corruptions
Date: Mon, 14 Nov 2011 10:58:16 +0100 [thread overview]
Message-ID: <4EC0E638.8030908@redhat.com> (raw)
In-Reply-To: <4EBE499E.4030100@redhat.com>
Am 12.11.2011 11:25, schrieb Avi Kivity:
> On 11/11/2011 12:15 PM, Kevin Wolf wrote:
>> Am 10.11.2011 22:30, schrieb Anthony Liguori:
>>> Live migration with qcow2 or any other image format is just not going to work
>>> right now even with proper clustered storage. I think doing a block level flush
>>> cache interface and letting block devices decide how to do it is the best approach.
>>
>> I would really prefer reusing the existing open/close code. It means
>> less (duplicated) code, is existing code that is well tested and doesn't
>> make migration much of a special case.
>>
>> If you want to avoid reopening the file on the OS level, we can reopen
>> only the topmost layer (i.e. the format, but not the protocol) for now
>> and in 1.1 we can use bdrv_reopen().
>
> Intuitively I dislike _reopen style interfaces. If the second open
> yields different results from the first, does it invalidate any
> computations in between?
Not sure what results and what computation you mean, but let me clarify
a bit about bdrv_reopen:
The main purpose of bdrv_reopen() is to change flags, for example toggle
O_SYNC during runtime in order to allow the guest to toggle WCE. This
doesn't necessarily mean a close()/open() sequence if there are other
means to change the flags, like fcntl() (or even using other protocols
than files).
The idea here was to extend this to invalidate all caches if some
specific flag is set. As you don't change any other flag, this will
usually not be a reopen on a lower level.
If we need to use open() though, and it fails (this is really the only
"different" result that comes to mind) then bdrv_reopen() would fail and
the old fd would stay in use. Migration would have to fail, but I don't
think this case is ever needed for reopening after migration.
> What's wrong with just delaying the open?
Nothing, except that with today's code it's harder to do.
Kevin
next prev parent reply other threads:[~2011-11-14 9:55 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-09 16:29 [Qemu-devel] qemu and qemu.git -> Migration + disk stress introduces qcow2 corruptions Lucas Meneghel Rodrigues
2011-11-09 16:39 ` Anthony Liguori
2011-11-09 17:02 ` Avi Kivity
2011-11-09 17:35 ` Anthony Liguori
2011-11-09 19:53 ` Juan Quintela
2011-11-09 20:18 ` Michael S. Tsirkin
2011-11-09 20:22 ` Anthony Liguori
2011-11-09 21:00 ` Michael S. Tsirkin
2011-11-09 21:01 ` Anthony Liguori
2011-11-10 10:41 ` Kevin Wolf
2011-11-10 16:50 ` Juan Quintela
2011-11-10 17:59 ` Anthony Liguori
2011-11-10 18:00 ` Anthony Liguori
2011-11-09 20:57 ` Juan Quintela
2011-11-10 8:55 ` Avi Kivity
2011-11-10 17:50 ` Juan Quintela
2011-11-10 17:54 ` Anthony Liguori
2011-11-12 10:20 ` Avi Kivity
2011-11-12 13:30 ` Anthony Liguori
2011-11-12 14:36 ` Avi Kivity
2011-11-10 18:27 ` Anthony Liguori
2011-11-10 18:42 ` Daniel P. Berrange
2011-11-10 19:11 ` Anthony Liguori
2011-11-10 20:06 ` Daniel P. Berrange
2011-11-10 20:07 ` Anthony Liguori
2011-11-10 21:30 ` Anthony Liguori
2011-11-11 10:15 ` Kevin Wolf
2011-11-11 14:03 ` Anthony Liguori
2011-11-11 14:29 ` Kevin Wolf
2011-11-11 14:35 ` Anthony Liguori
2011-11-11 14:44 ` Kevin Wolf
2011-11-11 20:38 ` Anthony Liguori
2011-11-12 10:27 ` Avi Kivity
2011-11-12 13:39 ` Anthony Liguori
2011-11-12 14:43 ` Avi Kivity
2011-11-12 16:01 ` Anthony Liguori
2011-11-12 10:25 ` Avi Kivity
2011-11-14 9:58 ` Kevin Wolf [this message]
2011-11-14 10:10 ` Michael S. Tsirkin
2011-11-15 13:28 ` Avi Kivity
2011-11-14 10:16 ` Daniel P. Berrange
2011-11-14 10:24 ` Michael S. Tsirkin
2011-11-14 11:08 ` Daniel P. Berrange
2011-11-14 11:21 ` Kevin Wolf
2011-11-14 11:29 ` Daniel P. Berrange
2011-11-14 11:34 ` Michael S. Tsirkin
2011-11-14 11:37 ` Daniel P. Berrange
2011-11-14 11:51 ` Michael S. Tsirkin
2011-11-14 11:55 ` Daniel P. Berrange
2011-11-14 11:56 ` Michael S. Tsirkin
2011-11-14 11:58 ` Daniel P. Berrange
2011-11-14 12:17 ` Michael S. Tsirkin
2011-11-14 11:36 ` Gleb Natapov
2011-11-14 11:32 ` Michael S. Tsirkin
2011-11-14 14:19 ` Anthony Liguori
2011-11-15 13:20 ` Juan Quintela
2011-11-15 13:56 ` Anthony Liguori
2011-11-09 19:25 ` Juan Quintela
2011-11-09 23:33 ` Lucas Meneghel Rodrigues
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=4EC0E638.8030908@redhat.com \
--to=kwolf@redhat.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=libvir-list@redhat.com \
--cc=lmr@redhat.com \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@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).