From: Paolo Bonzini <pbonzini@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>
Cc: "Marcelo Tosatti" <mtosatti@redhat.com>,
kvm@vger.kernel.org, qemu-devel@nongnu.org,
"Igor Mammedov" <imammedo@redhat.com>,
"Andreas Färber" <afaerber@suse.de>
Subject: Re: [patch 2/2] target-i386: block migration and savevm if invariant tsc is exposed
Date: Fri, 25 Apr 2014 23:08:00 +0200 [thread overview]
Message-ID: <535ACEB0.4020302@redhat.com> (raw)
In-Reply-To: <20140424231834.GT3363@otherpad.lan.raisama.net>
Il 25/04/2014 01:18, Eduardo Habkost ha scritto:
> On Fri, Apr 25, 2014 at 12:57:48AM +0200, Paolo Bonzini wrote:
>> Il 24/04/2014 22:57, Eduardo Habkost ha scritto:
>>> If that didn't break other use cases, I would agree.
>>>
>>> But "-cpu host" today covers two use cases: 1) enabling everything that
>>> can be enabled, even if it breaks migration; 2) enabling all stuff that
>>> can be safely enabled without breaking migration.
>>
>> What does it enable *now* that breaks migration?
>
> Every single feature it enables can break it. It breaks if you upgrade
> to a QEMU version with new feature words. It breaks if you upgrade to a
> kernel which supports new features.
Yes, but it doesn't break it if you have the same processor, QEMU and
kernel versions; this is not the case for invtsc (at least without
improvements that aren't there yet).
> A feature that doesn't let you upgrade the kernel isn't a feature I
> expect users to be relying upon.
It lets you upgrade the kernel as long as you do it for all machines.
Whether this is acceptable depends on what you're using virt for.
It can be fine for "cattle" VMs that you can throw away at any time.
Though people who buy into the cattle vs. pet distinction will tell you
that you don't migrate cattle and this would make this discussion moot.
It can be fine for personal VMs (e.g. Windows VMs) that people use for
development and will likely throw away at the end of each working day.
Though for these VMs you also won't bother with migration, doing
maintenance at night is easier (and if you need "-cpu host" you're
probably doing other things such as GPU assignment that prevents migration).
So I couldn't indeed think of uses of "-cpu host" together with
migration. But if you're sure there is none, block it in QEMU. There's
no reason why this should be specific to libvirt.
>> Or if you plan ahead. With additional logic even invariant TSC in
>> principle can be made to work across migration if the host clocks are
>> synchronized well enough (PTP accuracy is in the 100-1000 TSC ticks
>> range).
>
> Yes, it is possible in the future. But we never planned for it, so "-cpu
> host" never supported migration.
If it wasn't blocked, it was supported. You can change this, but this
implies documenting it in release notes, and perhaps warning for a
couple of releases to give non-libvirt users a chance to tell us what
they're doing.
> We may try to make a reliable implementation of use case (2) some day,
> yes. But the choice I see right now is between trying not break a
> feature that was never declared to exist, or breaking an existing
> interface that is required to solve existing bugs between libvirt and
> QEMU.
I'm not sure I follow, what existing interface would be broken and how?
Paolo
next prev parent reply other threads:[~2014-04-25 21:08 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-22 19:10 [patch 0/2] expose invariant tsc flag for kvm guests Marcelo Tosatti
2014-04-22 19:10 ` [patch 1/2] target-i386: support "invariant tsc" flag Marcelo Tosatti
2014-04-23 0:26 ` Paolo Bonzini
2014-04-23 1:11 ` Eduardo Habkost
2014-04-22 19:10 ` [patch 2/2] target-i386: block migration and savevm if invariant tsc is exposed Marcelo Tosatti
2014-04-22 19:28 ` Marcelo Tosatti
2014-04-22 20:38 ` Eduardo Habkost
2014-04-22 21:27 ` Marcelo Tosatti
2014-04-23 1:14 ` Eduardo Habkost
2014-04-24 20:42 ` Paolo Bonzini
2014-04-24 20:57 ` Eduardo Habkost
2014-04-24 22:57 ` Paolo Bonzini
2014-04-24 23:18 ` Eduardo Habkost
2014-04-25 21:08 ` Paolo Bonzini [this message]
2014-04-28 15:46 ` Eduardo Habkost
2014-04-28 19:06 ` Paolo Bonzini
2014-04-28 19:23 ` Eduardo Habkost
2014-04-29 6:22 ` Paolo Bonzini
2014-04-29 14:29 ` Eduardo Habkost
2014-04-23 18:20 ` [patch 0/2] expose invariant tsc flag for kvm guests (v2) Marcelo Tosatti
2014-04-23 18:20 ` [patch 1/2] target-i386: support "invariant tsc" flag Marcelo Tosatti
2014-04-23 19:04 ` Eduardo Habkost
2014-04-23 18:20 ` [patch 2/2] target-i386: block migration and savevm if invariant tsc is exposed Marcelo Tosatti
2014-04-23 19:09 ` Eduardo Habkost
2014-04-23 21:04 ` target-i386: block migration and savevm if invariant tsc is exposed (v3) Marcelo Tosatti
2014-04-24 19:21 ` Eduardo Habkost
2014-04-24 21:32 ` Marcelo Tosatti
2014-04-25 20:38 ` Eduardo Habkost
2014-04-25 22:47 ` [PATCH] savevm: check vmsd for migratability status Marcelo Tosatti
2014-04-28 20:36 ` Eduardo Habkost
2014-04-30 0:39 ` [PATCH] savevm: check vmsd for migratability status (v2) Marcelo Tosatti
2014-04-30 15:47 ` [Qemu-devel] " Eduardo Habkost
2014-04-25 22:47 ` target-i386: block migration and savevm if invariant tsc is exposed (v3) Marcelo Tosatti
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=535ACEB0.4020302@redhat.com \
--to=pbonzini@redhat.com \
--cc=afaerber@suse.de \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
--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