[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 0/3] target-i386: save/restore vcpu's TSC rat
From: |
Haozhong Zhang |
Subject: |
Re: [Qemu-devel] [PATCH v2 0/3] target-i386: save/restore vcpu's TSC rate during migration |
Date: |
Fri, 23 Oct 2015 10:27:27 +0800 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Thu, Oct 22, 2015 at 04:45:21PM -0200, Eduardo Habkost wrote:
> On Tue, Oct 20, 2015 at 03:22:51PM +0800, Haozhong Zhang wrote:
> > This patchset enables QEMU to save/restore vcpu's TSC rate during the
> > migration. When cooperating with KVM which supports TSC scaling, guest
> > programs can observe a consistent guest TSC rate even though they are
> > migrated among machines with different host TSC rates.
> >
> > A pair of cpu options 'save-tsc-freq' and 'load-tsc-freq' are added to
> > control the migration of vcpu's TSC rate.
>
> The requirements and goals aren't clear to me. I see two possible use
> cases, here:
>
> 1) Best effort to keep TSC frequency constant if possible (but not
> aborting migration if not possible). This would be an interesting
> default, but a bit unpredictable.
> 2) Strictly ensuring TSC frequency stays constant on migration (and
> aborting migration if not possible). This would be an useful feature,
> but can't be enabled by default unless both hosts have the same TSC
> frequency or support TSC scaling.
>
> Which one(s) you are trying to implement?
>
The former. I agree that it's unpredictable if setting vcpu's TSC
frequency to the migrated value is enabled by default (but not in this
patchset). The cpu option 'load-tsc-freq' is introduced to allow users
to enable this behavior if they do know the underlying KVM and CPU
support TSC scaling. In this way, I think the behavior is predictable
as users do know what they are doing.
> In other words, what is the right behavior when KVM_SET_TSC_KHZ fails or
> KVM_CAP_TSC_CONTROL is not available? We can't answer that question if
> the requirements and goals are not clear.
>
If KVM_CAP_TSC_CONTROL is unavailable, QEMU and KVM will use the host
TSC frequency as vcpu's TSC frequency.
If KVM_CAP_TSC_CONTROL is available and KVM_SET_TSC_KHZ fails, the
setting of TSC frequency will fail and abort either the VM creation
(this is the case for cpu option 'tsc-freq') or the migration.
> Once we know what exactly is the goal, we could enable the new mode with
> a single option, instead of raw options to control migration stream
> loading/saving.
>
Saving vcpu's TSC frequency does not depend on TSC scaling but the
loading does. And that is why I introduce two cpu options to control
them separately.
Haozhong
>
> > * By default, the migration of vcpu's TSC rate is enabled only on
> > pc-*-2.5 and newer machine types. If the cpu option 'save-tsc-freq'
> > is present, the vcpu's TSC rate will be migrated from older machine
> > types as well.
> > * Another cpu option 'load-tsc-freq' controls whether the migrated
> > vcpu's TSC rate is used. By default, QEMU will not use the migrated
> > TSC rate if this option is not present. Otherwise, QEMU will use
> > the migrated TSC rate and override the TSC rate given by the cpu
> > option 'tsc-freq'.
> >
> > Changes in v2:
> > * Add a pair of cpu options 'save-tsc-freq' and 'load-tsc-freq' to
> > control the migration of vcpu's TSC rate.
> > * Move all logic of setting TSC rate to target-i386.
> > * Remove the duplicated TSC setup in kvm_arch_init_vcpu().
> >
> > Haozhong Zhang (3):
> > target-i386: add a subsection for migrating vcpu's TSC rate
> > target-i386: calculate vcpu's TSC rate to be migrated
> > target-i386: load the migrated vcpu's TSC rate
> >
> > include/hw/i386/pc.h | 5 +++++
> > target-i386/cpu.c | 2 ++
> > target-i386/cpu.h | 3 +++
> > target-i386/kvm.c | 61
> > +++++++++++++++++++++++++++++++++++++++++++--------
> > target-i386/machine.c | 19 ++++++++++++++++
> > 5 files changed, 81 insertions(+), 9 deletions(-)
> >
> > --
> > 2.4.8
> >
>
> --
> Eduardo
[Qemu-devel] [PATCH v2 1/3] target-i386: add a subsection for migrating vcpu's TSC rate, Haozhong Zhang, 2015/10/20
Re: [Qemu-devel] [PATCH v2 0/3] target-i386: save/restore vcpu's TSC rate during migration, Eduardo Habkost, 2015/10/22
- Re: [Qemu-devel] [PATCH v2 0/3] target-i386: save/restore vcpu's TSC rate during migration,
Haozhong Zhang <=
Re: [Qemu-devel] [PATCH v2 0/3] target-i386: save/restore vcpu's TSC rate during migration, Marcelo Tosatti, 2015/10/23