[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 09/12] target-i386: Fallback vcpu's TSC rate to value
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [PULL 09/12] target-i386: Fallback vcpu's TSC rate to value returned by KVM |
Date: |
Thu, 21 Jan 2016 13:09:38 -0200 |
From: Haozhong Zhang <address@hidden>
If no user-specified TSC rate is present, we will try to set
env->tsc_khz to the value returned by KVM_GET_TSC_KHZ. This patch
does not change the current functionality of QEMU and just
prepares for later patches to enable migrating vcpu's TSC rate.
Signed-off-by: Haozhong Zhang <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
---
target-i386/kvm.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 0551a5c..1212b50 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -868,6 +868,20 @@ int kvm_arch_init_vcpu(CPUState *cs)
}
}
+ /* vcpu's TSC frequency is either specified by user, or following
+ * the value used by KVM if the former is not present. In the
+ * latter case, we query it from KVM and record in env->tsc_khz,
+ * so that vcpu's TSC frequency can be migrated later via this field.
+ */
+ if (!env->tsc_khz) {
+ r = kvm_check_extension(cs->kvm_state, KVM_CAP_GET_TSC_KHZ) ?
+ kvm_vcpu_ioctl(cs, KVM_GET_TSC_KHZ) :
+ -ENOTSUP;
+ if (r > 0) {
+ env->tsc_khz = r;
+ }
+ }
+
if (has_xsave) {
env->kvm_xsave_buf = qemu_memalign(4096, sizeof(struct kvm_xsave));
}
--
2.1.0
- [Qemu-devel] [PULL 00/12] X86 queue, 2016-01-21, Eduardo Habkost, 2016/01/21
- [Qemu-devel] [PULL 01/12] target-i386: Rename optimize_flags_init(), Eduardo Habkost, 2016/01/21
- [Qemu-devel] [PULL 03/12] target-i386: Use a _q array on MMXReg too, Eduardo Habkost, 2016/01/21
- [Qemu-devel] [PULL 02/12] target-i386/ops_sse.h: Use MMX_Q macro, Eduardo Habkost, 2016/01/21
- [Qemu-devel] [PULL 07/12] target-i386: Define MMREG_UNION macro, Eduardo Habkost, 2016/01/21
- [Qemu-devel] [PULL 04/12] target-i386: Rename struct XMMReg to ZMMReg, Eduardo Habkost, 2016/01/21
- [Qemu-devel] [PULL 08/12] target-i386: Add suffixes to MMReg struct fields, Eduardo Habkost, 2016/01/21
- [Qemu-devel] [PULL 06/12] target-i386: Define MMXReg._d field, Eduardo Habkost, 2016/01/21
- [Qemu-devel] [PULL 09/12] target-i386: Fallback vcpu's TSC rate to value returned by KVM,
Eduardo Habkost <=
- [Qemu-devel] [PULL 05/12] target-i386: Rename XMM_[BWLSDQ] helpers to ZMM_*, Eduardo Habkost, 2016/01/21
- [Qemu-devel] [PULL 10/12] target-i386: Reorganize TSC rate setting code, Eduardo Habkost, 2016/01/21
- [Qemu-devel] [PULL 11/12] target-i386: Add support to migrate vcpu's TSC rate, Eduardo Habkost, 2016/01/21
- [Qemu-devel] [PULL 12/12] target-i386: Add PKU and and OSPKE support, Eduardo Habkost, 2016/01/21
- Re: [Qemu-devel] [PULL 00/12] X86 queue, 2016-01-21, Peter Maydell, 2016/01/21