[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/3] target-i386: initialize vcpu's TSC rate to
From: |
Haozhong Zhang |
Subject: |
Re: [Qemu-devel] [PATCH 2/3] target-i386: initialize vcpu's TSC rate to the value from KVM |
Date: |
Tue, 29 Sep 2015 09:46:34 +0800 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Tue, Sep 29, 2015 at 09:23:39AM +0800, Haozhong Zhang wrote:
> 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 <address@hidden>
> > > ---
> > > 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);
Just notice this line duplicates code several lines above. Only the
else branch is needed.
> } 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
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to address@hidden
> More majordomo info at http://vger.kernel.org/majordomo-info.html
- Haozhong Zhang