On Thu, Jun 06, 2019 at 03:11:10PM +0300, Denis Plotnikov wrote: > > > On 06.06.2019 14:31, Roman Kagan wrote: > > On Thu, Jun 06, 2019 at 11:36:45AM +0300, Denis Plotnikov wrote: > >> This is done to prevent windows guest crashing while running > >> PassMark benchmark which calls rdmsr(0xce) - MSR_PLATFORM_INFO > >> from PassMark driver. > >> > >> The reason why the test driver does so is unclear, since > >> MSR_PLATFORM_INFO is used to calibrate tsc for certain Intel Atom > >> cpus (please, refer to try_msr_calibrate_tsc in arch/x86/kernel/tsc_msr.c). > >> > >> Anyway, KVM so far didn't have MSR_PLATFORM_INFO MSR implemented and > > > > KVM has it implemented since 4.12. Why not just backport it? > But for another purpose: "KVM: x86: virtualize cpuid faulting" > Isn't worth to backport now. Will get that functionality later while > rebasing to newer RHEL
Doesn't it apply cleanly? The rebase is easier if you don't need to modify the patch. Roman. > >> this didn't cause any problems with guest crashes on both Linux and Windows > >> platforms. So, the only reason why the crashes started now is that > >> the customer started using PassMark test on KVM platform recently. > >> > >> https://jira.sw.ru/browse/PSBM-95187 > >> > >> Signed-off-by: Denis Plotnikov <dplotni...@virtuozzo.com> > >> --- > >> arch/x86/kvm/cpuid.h | 1 - > >> arch/x86/kvm/x86.c | 7 +++++++ > >> 2 files changed, 7 insertions(+), 1 deletion(-) > >> > >> diff --git a/arch/x86/kvm/cpuid.h b/arch/x86/kvm/cpuid.h > >> index c4996e57d10c..fb0c6ab257cf 100644 > >> --- a/arch/x86/kvm/cpuid.h > >> +++ b/arch/x86/kvm/cpuid.h > >> @@ -121,5 +121,4 @@ static inline bool guest_cpuid_is_amd(struct kvm_vcpu > >> *vcpu) > >> best = kvm_find_cpuid_entry(vcpu, 0, 0); > >> return best && best->ebx == X86EMUL_CPUID_VENDOR_AuthenticAMD_ebx; > >> } > >> - > >> #endif > >> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > >> index f1230a251add..b855f03477f4 100644 > >> --- a/arch/x86/kvm/x86.c > >> +++ b/arch/x86/kvm/x86.c > >> @@ -1018,6 +1018,7 @@ static u32 emulated_msrs[] = { > >> MSR_IA32_MCG_EXT_CTL, > >> MSR_IA32_SMBASE, > >> MSR_AMD64_VIRT_SPEC_CTRL, > >> + MSR_PLATFORM_INFO, > >> }; > >> > >> static unsigned num_emulated_msrs; > >> @@ -2300,6 +2301,9 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct > >> msr_data *msr_info) > >> return 1; > >> vcpu->arch.osvw.status = data; > >> break; > >> + case MSR_PLATFORM_INFO: > >> + return 1; > >> + break; > >> default: > >> if (msr && (msr == vcpu->kvm->arch.xen_hvm_config.msr)) > >> return xen_hvm_config(vcpu, data); > >> @@ -2517,6 +2521,9 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, struct > >> msr_data *msr_info) > >> return 1; > >> msr_info->data = vcpu->arch.osvw.status; > >> break; > >> + case MSR_PLATFORM_INFO: > >> + msr_info->data = 0; > >> + break; > >> default: > >> if (kvm_pmu_is_valid_msr(vcpu, msr_info->index)) > >> return kvm_pmu_get_msr(vcpu, msr_info->index, > >> &msr_info->data); > >> -- > >> 2.17.0 > >> > > -- > Best, > Denis _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel