KVM: Implement dummy values for MSR_PERF_STATUS
Darwin relies on this and ceases to work without. Signed-off-by: Alexander Graf <alex@csgraf.de> Signed-off-by: Avi Kivity <avi@qumranet.com>
This commit is contained in:
committed by
Avi Kivity
parent
14af3f3c56
commit
847f0ad8cb
@@ -426,6 +426,7 @@ static u32 msrs_to_save[] = {
|
|||||||
MSR_CSTAR, MSR_KERNEL_GS_BASE, MSR_SYSCALL_MASK, MSR_LSTAR,
|
MSR_CSTAR, MSR_KERNEL_GS_BASE, MSR_SYSCALL_MASK, MSR_LSTAR,
|
||||||
#endif
|
#endif
|
||||||
MSR_IA32_TIME_STAMP_COUNTER, MSR_KVM_SYSTEM_TIME, MSR_KVM_WALL_CLOCK,
|
MSR_IA32_TIME_STAMP_COUNTER, MSR_KVM_SYSTEM_TIME, MSR_KVM_WALL_CLOCK,
|
||||||
|
MSR_IA32_PERF_STATUS,
|
||||||
};
|
};
|
||||||
|
|
||||||
static unsigned num_msrs_to_save;
|
static unsigned num_msrs_to_save;
|
||||||
@@ -653,7 +654,6 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
|
|||||||
case MSR_IA32_MC0_MISC+12:
|
case MSR_IA32_MC0_MISC+12:
|
||||||
case MSR_IA32_MC0_MISC+16:
|
case MSR_IA32_MC0_MISC+16:
|
||||||
case MSR_IA32_UCODE_REV:
|
case MSR_IA32_UCODE_REV:
|
||||||
case MSR_IA32_PERF_STATUS:
|
|
||||||
case MSR_IA32_EBL_CR_POWERON:
|
case MSR_IA32_EBL_CR_POWERON:
|
||||||
/* MTRR registers */
|
/* MTRR registers */
|
||||||
case 0xfe:
|
case 0xfe:
|
||||||
@@ -669,6 +669,12 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
|
|||||||
case MSR_IA32_MISC_ENABLE:
|
case MSR_IA32_MISC_ENABLE:
|
||||||
data = vcpu->arch.ia32_misc_enable_msr;
|
data = vcpu->arch.ia32_misc_enable_msr;
|
||||||
break;
|
break;
|
||||||
|
case MSR_IA32_PERF_STATUS:
|
||||||
|
/* TSC increment by tick */
|
||||||
|
data = 1000ULL;
|
||||||
|
/* CPU multiplier */
|
||||||
|
data |= (((uint64_t)4ULL) << 40);
|
||||||
|
break;
|
||||||
case MSR_EFER:
|
case MSR_EFER:
|
||||||
data = vcpu->arch.shadow_efer;
|
data = vcpu->arch.shadow_efer;
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user