On 2011-07-19 13:48, Marcelo Tosatti wrote: > On Thu, Jul 07, 2011 at 04:13:13PM +0200, Joerg Roedel wrote: >> Make use of the KVM_TSC_CONTROL feature if available. >> >> Signed-off-by: Joerg Roedel <joerg.roedel@xxxxxxx> >> --- >> target-i386/kvm.c | 18 +++++++++++++++++- >> 1 files changed, 17 insertions(+), 1 deletions(-) >> >> diff --git a/target-i386/kvm.c b/target-i386/kvm.c >> index 10fb2c4..923d2d5 100644 >> --- a/target-i386/kvm.c >> +++ b/target-i386/kvm.c >> @@ -354,6 +354,7 @@ int kvm_arch_init_vcpu(CPUState *env) >> uint32_t unused; >> struct kvm_cpuid_entry2 *c; >> uint32_t signature[3]; >> + int r; >> >> env->cpuid_features &= kvm_arch_get_supported_cpuid(s, 1, 0, R_EDX); >> >> @@ -499,7 +500,22 @@ int kvm_arch_init_vcpu(CPUState *env) >> >> qemu_add_vm_change_state_handler(cpu_update_state, env); >> >> - return kvm_vcpu_ioctl(env, KVM_SET_CPUID2, &cpuid_data); >> + r = kvm_vcpu_ioctl(env, KVM_SET_CPUID2, &cpuid_data); >> + if (r) >> + return r; >> + >> +#ifdef KVM_CAP_TSC_CONTROL >> + r = kvm_check_extension(env->kvm_state, KVM_CAP_TSC_CONTROL); >> + if (r && env->tsc_khz) { >> + r = kvm_vcpu_ioctl(env, KVM_SET_TSC_KHZ, env->tsc_khz); >> + if (r < 0) { >> + fprintf(stderr, "KVM_SET_TSC_KHZ failed\n"); >> + return r; >> + } >> + } >> +#endif > #ifdef times are over, please clean up before pushing upstream. Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html