In this patch, we probe the host checking for clocksource capabilities.
In case it is found, it is advertised to the guest through the appropriate
cpuid mechanism
Signed-off-by: Glauber de Oliveira Costa <gc...@re...>
---
qemu/qemu-kvm-x86.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/qemu/qemu-kvm-x86.c b/qemu/qemu-kvm-x86.c
index 21ec112..c008cb7 100644
--- a/qemu/qemu-kvm-x86.c
+++ b/qemu/qemu-kvm-x86.c
@@ -517,6 +517,10 @@ int kvm_arch_qemu_init_env(CPUState *cenv)
int cpuid_nent = 0;
CPUState copy;
uint32_t i, limit;
+ int has_clocksource = 0;
+#ifdef KVM_CAP_CLOCKSOURCE
+ has_clocksource = kvm_check_extension(kvm_context, KVM_CAP_CLOCKSOURCE);
+#endif
copy = *cenv;
@@ -534,7 +538,7 @@ int kvm_arch_qemu_init_env(CPUState *cenv)
pv_ent = &cpuid_ent[cpuid_nent++];
memset(pv_ent, 0, sizeof(*pv_ent));
pv_ent->function = KVM_CPUID_FEATURES;
- pv_ent->eax = 0;
+ pv_ent->eax = (has_clocksource << KVM_FEATURE_CLOCKSOURCE);
#endif
copy.regs[R_EAX] = 0;
--
1.5.0.6
|