On Mon, Sep 28, 2015 at 01:17:44PM -0300, Eduardo Habkost wrote: > On Mon, Sep 28, 2015 at 01:38:30PM +0800, Haozhong Zhang wrote: > > When creating a vcpu, we initialize its TSC rate to the value from > > KVM (through ioctl KVM_GET_TSC_KHZ). > > > > Signed-off-by: Haozhong Zhang <haozhong.zh...@intel.com> > > --- > > target-i386/kvm.c | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/target-i386/kvm.c b/target-i386/kvm.c > > index 7b0ba17..c2b161a 100644 > > --- a/target-i386/kvm.c > > +++ b/target-i386/kvm.c > > @@ -751,6 +751,13 @@ int kvm_arch_init_vcpu(CPUState *cs) > > } > > } > > > > + r = kvm_vcpu_ioctl(cs, KVM_GET_TSC_KHZ); > > + if (r < 0) { > > + fprintf(stderr, "KVM_GET_TSC_KHZ failed\n"); > > + return r; > > + } > > + env->tsc_khz = r; > > You are silently overwriting the tsc_khz value set by the user, why? >
Oh, I need to check if user has provided tsc_khz, and if so then just use the user-provided value. So I'll replace it with code like if (env->tsc_khz) { kvm_vcpu_ioctl(cs, KVM_SET_TSC_KHZ, env->tsc_khz); } else { r = kvm_vcpu_ioctl(cs, KVM_GET_TSC_KHZ); if (r < 0) { fprintf(stderr, "KVM_GET_TSC_KHZ failed\n"); return r; } env->tsc_khz = r; } - Haozhong > -- > Eduardo