From: Haozhong Zhang <haozhong.zhang@intel.com>
To: qemu-devel@nongnu.org
Cc: Haozhong Zhang <haozhong.zhang@intel.com>,
Eduardo Habkost <ehabkost@redhat.com>,
kvm@vger.kernel.org, Marcelo Tosatti <mtosatti@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: [Qemu-devel] [PATCH 3/3] kvm-all: notice KVM of vcpu's TSC rate after migration
Date: Mon, 28 Sep 2015 13:38:31 +0800 [thread overview]
Message-ID: <1443418711-24106-4-git-send-email-haozhong.zhang@intel.com> (raw)
In-Reply-To: <1443418711-24106-1-git-send-email-haozhong.zhang@intel.com>
When a vcpu is created in KVM, its TSC rate is initially identical to
the host TSC rate. If its state is migrated to a vcpu on another
machine (target machine) which may uses a different host TSC rate, QEMU
on the target machine should notice KVM of the migrated vcpu's TSC
rate. In case that KVM on the target machine supports TSC scaling, guest
programs running on the migrated vcpu will observe the same TSC rate
before and after the migration.
Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
---
kvm-all.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/kvm-all.c b/kvm-all.c
index 0be4615..e8de038 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -1769,6 +1769,19 @@ void kvm_cpu_synchronize_post_reset(CPUState *cpu)
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().
+ */
+ r = kvm_check_extension(cpu->kvm_state, KVM_CAP_TSC_CONTROL);
+ if (r && env->tsc_khz) {
+ r = kvm_vcpu_ioctl(cpu, KVM_SET_TSC_KHZ, env->tsc_khz);
+ if (r < 0) {
+ fprintf(stderr, "KVM_SET_TSC_KHZ failed\n");
+ }
+ }
kvm_arch_put_registers(cpu, KVM_PUT_FULL_STATE);
cpu->kvm_vcpu_dirty = false;
--
2.4.8
next prev parent reply other threads:[~2015-09-28 5:39 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-28 5:38 [Qemu-devel] [PATCH 0/3] target-i386: save/restore vcpu's TSC rate during migration Haozhong Zhang
2015-09-28 5:38 ` [Qemu-devel] [PATCH 1/3] target-i386: add a subsection of vcpu's TSC rate in vmstate_x86_cpu Haozhong Zhang
2015-09-29 19:00 ` Dr. David Alan Gilbert
2015-09-30 1:17 ` Haozhong Zhang
2015-09-30 8:07 ` Dr. David Alan Gilbert
2015-10-06 1:24 ` Haozhong Zhang
2015-09-28 5:38 ` [Qemu-devel] [PATCH 2/3] target-i386: initialize vcpu's TSC rate to the value from KVM Haozhong Zhang
2015-09-28 16:17 ` Eduardo Habkost
2015-09-29 1:23 ` Haozhong Zhang
2015-09-29 1:46 ` Haozhong Zhang
2015-09-28 5:38 ` Haozhong Zhang [this message]
2015-09-28 16:37 ` [Qemu-devel] [PATCH 3/3] kvm-all: notice KVM of vcpu's TSC rate after migration Eduardo Habkost
2015-09-29 3:43 ` Haozhong Zhang
2015-09-29 18:02 ` Eduardo Habkost
2015-09-30 0:32 ` Haozhong Zhang
2015-09-30 20:36 ` Eduardo Habkost
2015-10-06 1:20 ` 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=1443418711-24106-4-git-send-email-haozhong.zhang@intel.com \
--to=haozhong.zhang@intel.com \
--cc=ehabkost@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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;
as well as URLs for NNTP newsgroup(s).