public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Radim Krčmář" <rkrcmar@redhat.com>
To: Haozhong Zhang <haozhong.zhang@intel.com>
Cc: kvm@vger.kernel.org, "Gleb Natapov" <gleb@kernel.org>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Ingo Molnar" <mingo@redhat.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	x86@kernel.org, "Joerg Roedel" <joro@8bytes.org>,
	"Wanpeng Li" <wanpeng.li@linux.intel.com>,
	"Xiao Guangrong" <guangrong.xiao@linux.intel.com>,
	"Mihai Donțu" <mdontu@bitdefender.com>,
	"Andy Lutomirski" <luto@kernel.org>,
	"Kai Huang" <kai.huang@linux.intel.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 04/12] KVM: x86: Replace call-back set_tsc_khz() with a common function
Date: Mon, 5 Oct 2015 21:53:26 +0200	[thread overview]
Message-ID: <20151005195325.GA4508@potion.brq.redhat.com> (raw)
In-Reply-To: <1443418691-24050-5-git-send-email-haozhong.zhang@intel.com>

2015-09-28 13:38+0800, Haozhong Zhang:
> Both VMX and SVM propagate virtual_tsc_khz in the same way, so this
> patch removes the call-back set_tsc_khz() and replaces it with a common
> function.
> 
> Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
> ---
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> +static void set_tsc_khz(struct kvm_vcpu *vcpu, u32 user_tsc_khz, bool scale)
> +{
> +	u64 ratio, khz;
| [...]
> +	khz = user_tsc_khz;

I'd use "user_tsc_khz" directly.

> +	/* TSC scaling required  - calculate ratio */
> +	shift = (kvm_tsc_scaling_ratio_frac_bits <= 32) ?
> +		kvm_tsc_scaling_ratio_frac_bits : 32;
> +	ratio = khz << shift;
> +	do_div(ratio, tsc_khz);
> +	ratio <<= (kvm_tsc_scaling_ratio_frac_bits - shift);

VMX is losing 16 bits by this operation;  normal fixed point division
could get us a smaller drift (and an one-liner here) ...
at 4.3 GHz, 32 instead of 48 bits after decimal point translate to one
"lost" TSC tick per second, in the worst case.

Please mention that we are truncating on purpose :)

  parent reply	other threads:[~2015-10-05 19:54 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-28  5:37 [PATCH 00/12] KVM: x86: add support for VMX TSC scaling Haozhong Zhang
2015-09-28  5:38 ` [PATCH 01/12] KVM: x86: Collect information for setting TSC scaling ratio Haozhong Zhang
2015-09-29  3:28   ` Eric Northup
2015-09-29  4:01     ` Haozhong Zhang
2015-09-28  5:38 ` [PATCH 02/12] KVM: x86: Add a common TSC scaling ratio field in kvm_vcpu_arch Haozhong Zhang
2015-10-05 19:26   ` Radim Krčmář
2015-10-06  1:54     ` Haozhong Zhang
2015-09-28  5:38 ` [PATCH 03/12] KVM: x86: Add a common TSC scaling function Haozhong Zhang
2015-09-28 20:12   ` Paolo Bonzini
2015-09-29  1:51     ` Haozhong Zhang
2015-09-28  5:38 ` [PATCH 04/12] KVM: x86: Replace call-back set_tsc_khz() with a common function Haozhong Zhang
     [not found]   ` <CAG7+5M3z2-OKsy0wxxks2oW9+7WmFpO4JQETTx3KsaW-hWMGqw@mail.gmail.com>
2015-09-29  3:47     ` Haozhong Zhang
2015-10-05 19:53   ` Radim Krčmář [this message]
2015-10-05 20:46     ` David Matlack
2015-10-06  4:06     ` Haozhong Zhang
2015-10-06 10:40       ` Paolo Bonzini
2015-10-06 11:32         ` Haozhong Zhang
2015-09-28  5:38 ` [PATCH 05/12] KVM: x86: Replace call-back compute_tsc_offset() " Haozhong Zhang
2015-09-28  5:38 ` [PATCH 06/12] KVM: x86: Move TSC scaling logic out of call-back adjust_tsc_offset() Haozhong Zhang
2015-09-28 20:14   ` Paolo Bonzini
2015-09-29  1:47     ` Haozhong Zhang
2015-09-28  5:38 ` [PATCH 07/12] KVM: x86: Move TSC scaling logic out of call-back read_l1_tsc() Haozhong Zhang
2015-09-28  5:38 ` [PATCH 08/12] KVM: x86: Use the correct vcpu's TSC rate to compute time scale Haozhong Zhang
2015-10-05 20:12   ` Radim Krčmář
2015-09-28  5:38 ` [PATCH 09/12] KVM: VMX: Enable and initialize VMX TSC scaling Haozhong Zhang
2015-09-28  5:38 ` [PATCH 10/12] KVM: VMX: Setup TSC scaling ratio when a vcpu is loaded Haozhong Zhang
2015-09-28  5:38 ` [PATCH 11/12] KVM: VMX: Use a scaled host TSC for guest readings of MSR_IA32_TSC Haozhong Zhang
2015-09-28  5:38 ` [PATCH 12/12] KVM: VMX: Dump TSC multiplier in dump_vmcs() Haozhong Zhang
2015-09-29  4:00 ` [PATCH 00/12] KVM: x86: add support for VMX TSC scaling Eric Northup
2015-09-29  4:03   ` Haozhong Zhang

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=20151005195325.GA4508@potion.brq.redhat.com \
    --to=rkrcmar@redhat.com \
    --cc=gleb@kernel.org \
    --cc=guangrong.xiao@linux.intel.com \
    --cc=haozhong.zhang@intel.com \
    --cc=hpa@zytor.com \
    --cc=joro@8bytes.org \
    --cc=kai.huang@linux.intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mdontu@bitdefender.com \
    --cc=mingo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=wanpeng.li@linux.intel.com \
    --cc=x86@kernel.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