On Tue, Sep 29, 2015 at 03:02:07PM -0300, Eduardo Habkost wrote:
On Tue, Sep 29, 2015 at 11:43:34AM +0800, Haozhong Zhang wrote:
> On Mon, Sep 28, 2015 at 01:37:34PM -0300, Eduardo Habkost wrote:
> > On Mon, Sep 28, 2015 at 01:38:31PM +0800, Haozhong Zhang wrote:
[...]
> > > static void do_kvm_cpu_synchronize_post_init(void *arg)
> > > {
> > > CPUState *cpu = arg;
> > > + CPUX86State *env = &X86_CPU(cpu)->env;
> > > + int r;
> > > +
> > > + /*
> > > + * XXX: KVM_SET_TSC_KHZ must be done before
kvm_arch_put_registers().
> >
> > Could you explain where this requirement comes from?
> >
>
> kvm_arch_put_registers() below will setup vcpu's MSR_IA32_TSC through
> KVM ioctl KVM_SET_MSRS. KVM needs to know vcpu's TSC rate so as to
> correctly scale the TSC value given by QEMU, especially when vcpu's
> TSC rate is different than the host TSC rate (e.g. it's migrated from
> another machine w/ different host TSC rate than the current one).
Thanks. The comment above could contain a short version of this
explanation, e.g.: "KVM needs KVM_SET_TSC_KHZ to be done before
KVM_SET_MSRS sets MSR_IA32_TSC (done by kvm_arch_put_registers())".
will include this in the comment
>
[...]
> > Or maybe we shouldn't treat this as VM state, but as configuration, and
> > let management configure the TSC frequency explicitly if the user really
> > needs it to stay the same during migration.
> >
> > (CCing libvir-list to see if they have feedback)
> >
>
> Thanks for CC. I'll consider to add a command line option to control
> the configuration of guest TSC fequency.
It already exists, -cpu has a "tsc-freq" option.
What I'm considering is to add a "-keep-tsc-freq" option to control
whether the TSC frequency should be migrated if "tsc-freq" is not
presented. Compared to "tsc-freq", "-keep-tsc-freq" can free users
from figuring out the guest TSC frequency manually in the migration.
- Haozhong
--
Eduardo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html