Revision 1a03675d

b/target-i386/cpu.h
651 651
    target_ulong fmask;
652 652
    target_ulong kernelgsbase;
653 653
#endif
654
    uint64_t system_time_msr;
655
    uint64_t wall_clock_msr;
654 656

  
655 657
    uint64_t tsc;
656 658

  
b/target-i386/kvm.c
35 35
    do { } while (0)
36 36
#endif
37 37

  
38
#define MSR_KVM_WALL_CLOCK  0x11
39
#define MSR_KVM_SYSTEM_TIME 0x12
40

  
38 41
#ifdef KVM_CAP_EXT_CPUID
39 42

  
40 43
static struct kvm_cpuid2 *try_get_cpuid(KVMState *s, int max)
......
494 497
    kvm_msr_entry_set(&msrs[n++], MSR_FMASK, env->fmask);
495 498
    kvm_msr_entry_set(&msrs[n++], MSR_LSTAR, env->lstar);
496 499
#endif
500
    kvm_msr_entry_set(&msrs[n++], MSR_KVM_SYSTEM_TIME,  env->system_time_msr);
501
    kvm_msr_entry_set(&msrs[n++], MSR_KVM_WALL_CLOCK,  env->wall_clock_msr);
502

  
497 503
    msr_data.info.nmsrs = n;
498 504

  
499 505
    return kvm_vcpu_ioctl(env, KVM_SET_MSRS, &msr_data);
......
634 640
    msrs[n++].index = MSR_FMASK;
635 641
    msrs[n++].index = MSR_LSTAR;
636 642
#endif
643
    msrs[n++].index = MSR_KVM_SYSTEM_TIME;
644
    msrs[n++].index = MSR_KVM_WALL_CLOCK;
645

  
637 646
    msr_data.info.nmsrs = n;
638 647
    ret = kvm_vcpu_ioctl(env, KVM_GET_MSRS, &msr_data);
639 648
    if (ret < 0)
......
670 679
        case MSR_IA32_TSC:
671 680
            env->tsc = msrs[i].data;
672 681
            break;
682
        case MSR_KVM_SYSTEM_TIME:
683
            env->system_time_msr = msrs[i].data;
684
            break;
685
        case MSR_KVM_WALL_CLOCK:
686
            env->wall_clock_msr = msrs[i].data;
687
            break;
673 688
        }
674 689
    }
675 690

  
b/target-i386/machine.c
461 461
        VMSTATE_UINT64_ARRAY_V(mce_banks, CPUState, MCE_BANKS_DEF *4, 10),
462 462
        /* rdtscp */
463 463
        VMSTATE_UINT64_V(tsc_aux, CPUState, 11),
464
        /* KVM pvclock msr */
465
        VMSTATE_UINT64_V(system_time_msr, CPUState, 11),
466
        VMSTATE_UINT64_V(wall_clock_msr, CPUState, 11),
464 467
        VMSTATE_END_OF_LIST()
465 468
        /* The above list is not sorted /wrt version numbers, watch out! */
466 469
    }

Also available in: Unified diff