Re: [Qemu-devel] [PATCH] target-i386: do not read/write MSR_TSC_AUX from KVM if CPUID bit is not set
On Wed, Mar 30, 2016 at 10:59:42PM +0200, Paolo Bonzini wrote: > KVM does not let you read or write this MSR if the corresponding CPUID > bit is not set. This in turn causes MSRs that come after MSR_TSC_AUX > to be ignored by KVM_SET_MRSS. > > One visible symptom is that s3.flat from kvm-unit-tests fails with > CPUs that do not have RDTSCP, because the SMBASE is not reset to > 0x3 after reset. > > Fixes: c9b8f6b6210847b4381c5b2ee172b1c7eb9985d6 > Cc: qemu-sta...@nongnu.org > Signed-off-by: Paolo BonziniReviewed-by: Eduardo Habkost -- Eduardo
Re: [Qemu-devel] [PATCH] target-i386: do not read/write MSR_TSC_AUX from KVM if CPUID bit is not set
On 03/30/16 22:59, Paolo Bonzini wrote: > KVM does not let you read or write this MSR if the corresponding CPUID > bit is not set. This in turn causes MSRs that come after MSR_TSC_AUX > to be ignored by KVM_SET_MRSS. typo: KVM_SET_MRSS / KVM_SET_MSRS Thanks for fixing this. Laszlo > > One visible symptom is that s3.flat from kvm-unit-tests fails with > CPUs that do not have RDTSCP, because the SMBASE is not reset to > 0x3 after reset. > > Fixes: c9b8f6b6210847b4381c5b2ee172b1c7eb9985d6 > Cc: qemu-sta...@nongnu.org > Signed-off-by: Paolo Bonzini> --- > target-i386/kvm.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/target-i386/kvm.c b/target-i386/kvm.c > index 87ab969..19e2d94 100644 > --- a/target-i386/kvm.c > +++ b/target-i386/kvm.c > @@ -917,6 +917,9 @@ int kvm_arch_init_vcpu(CPUState *cs) > if (env->features[FEAT_1_EDX] & CPUID_MTRR) { > has_msr_mtrr = true; > } > +if (!(env->features[FEAT_8000_0001_EDX] & CPUID_EXT2_RDTSCP)) { > +has_msr_tsc_aux = false; > +} > > return 0; > } >
[Qemu-devel] [PATCH] target-i386: do not read/write MSR_TSC_AUX from KVM if CPUID bit is not set
KVM does not let you read or write this MSR if the corresponding CPUID bit is not set. This in turn causes MSRs that come after MSR_TSC_AUX to be ignored by KVM_SET_MRSS. One visible symptom is that s3.flat from kvm-unit-tests fails with CPUs that do not have RDTSCP, because the SMBASE is not reset to 0x3 after reset. Fixes: c9b8f6b6210847b4381c5b2ee172b1c7eb9985d6 Cc: qemu-sta...@nongnu.org Signed-off-by: Paolo Bonzini--- target-i386/kvm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target-i386/kvm.c b/target-i386/kvm.c index 87ab969..19e2d94 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -917,6 +917,9 @@ int kvm_arch_init_vcpu(CPUState *cs) if (env->features[FEAT_1_EDX] & CPUID_MTRR) { has_msr_mtrr = true; } +if (!(env->features[FEAT_8000_0001_EDX] & CPUID_EXT2_RDTSCP)) { +has_msr_tsc_aux = false; +} return 0; } -- 2.5.5