public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Shut up unhandled MSR warnings
@ 2015-11-12 10:13 Borislav Petkov
  2015-11-12 10:33 ` Paolo Bonzini
  0 siblings, 1 reply; 5+ messages in thread
From: Borislav Petkov @ 2015-11-12 10:13 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Jörg Rödel, kvm ML, lkml

Hey Paolo,

do we apply stuff like that below?

When booting guests all the time here, dmesg gets filled up with those
"unhandled rdmsr" useless warnings. The patch below shuts them up.

The only problem is that the IC CFG MSR has those fields
defined starting from F15h and I don't see a way to check the
family/model/stepping of the guest CPU in kvm. Is there?

Thanks.

---
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index b8c14bb7fc8f..08b880818fb9 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -315,6 +315,7 @@
 #define MSR_F15H_PERF_CTR		0xc0010201
 #define MSR_F15H_NB_PERF_CTL		0xc0010240
 #define MSR_F15H_NB_PERF_CTR		0xc0010241
+#define MSR_F15H_IC_CFG			0xc0011021
 
 /* Fam 10h MSRs */
 #define MSR_FAM10H_MMIO_CONF_BASE	0xc0010058
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 4a70fc6d400a..1d76dcdf7e55 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -665,9 +665,9 @@ static void init_amd_bd(struct cpuinfo_x86 *c)
 	 * Disable it on the affected CPUs.
 	 */
 	if ((c->x86_model >= 0x02) && (c->x86_model < 0x20)) {
-		if (!rdmsrl_safe(0xc0011021, &value) && !(value & 0x1E)) {
+		if (!rdmsrl_safe(MSR_F15H_IC_CFG, &value) && !(value & 0x1E)) {
 			value |= 0x1E;
-			wrmsrl_safe(0xc0011021, value);
+			wrmsrl_safe(MSR_F15H_IC_CFG, value);
 		}
 	}
 }
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 2f9ed1ff0632..7948cdeacbfe 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -3141,6 +3141,9 @@ static int svm_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
 	case MSR_IA32_UCODE_REV:
 		msr_info->data = 0x01000065;
 		break;
+	case MSR_F15H_IC_CFG:
+		msr_info->data = 0x1E;
+		break;
 	default:
 		return kvm_get_msr_common(vcpu, msr_info);
 	}

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: Shut up unhandled MSR warnings
  2015-11-12 10:13 Shut up unhandled MSR warnings Borislav Petkov
@ 2015-11-12 10:33 ` Paolo Bonzini
  2015-11-12 10:59   ` Borislav Petkov
  0 siblings, 1 reply; 5+ messages in thread
From: Paolo Bonzini @ 2015-11-12 10:33 UTC (permalink / raw)
  To: Borislav Petkov; +Cc: Jörg Rödel, kvm ML, lkml



On 12/11/2015 11:13, Borislav Petkov wrote:
> Hey Paolo,
> 
> do we apply stuff like that below?

If we really need to, we do.

> When booting guests all the time here, dmesg gets filled up with those
> "unhandled rdmsr" useless warnings. The patch below shuts them up.
> 
> The only problem is that the IC CFG MSR has those fields
> defined starting from F15h and I don't see a way to check the
> family/model/stepping of the guest CPU in kvm. Is there?

Yes, see guest_cpuid_has_* for an example of reading the CPUID values.

But if it's defined for _all_ models starting at family 21, we can just
do it unconditionally.

Paolo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Shut up unhandled MSR warnings
  2015-11-12 10:33 ` Paolo Bonzini
@ 2015-11-12 10:59   ` Borislav Petkov
  2015-11-12 12:16     ` Borislav Petkov
  0 siblings, 1 reply; 5+ messages in thread
From: Borislav Petkov @ 2015-11-12 10:59 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Jörg Rödel, kvm ML, lkml

On Thu, Nov 12, 2015 at 11:33:33AM +0100, Paolo Bonzini wrote:
> Yes, see guest_cpuid_has_* for an example of reading the CPUID values.
> 
> But if it's defined for _all_ models starting at family 21, we can just
> do it unconditionally.

The thing is, those bits are Reserved again on the next family 22. Lemme
take a look at guest_cpuid_has_* and see how ugly it gets.

Thanks.

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Shut up unhandled MSR warnings
  2015-11-12 10:59   ` Borislav Petkov
@ 2015-11-12 12:16     ` Borislav Petkov
  2015-11-12 12:28       ` Paolo Bonzini
  0 siblings, 1 reply; 5+ messages in thread
From: Borislav Petkov @ 2015-11-12 12:16 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: Jörg Rödel, kvm ML, lkml

On Thu, Nov 12, 2015 at 11:59:58AM +0100, Borislav Petkov wrote:
> On Thu, Nov 12, 2015 at 11:33:33AM +0100, Paolo Bonzini wrote:
> > Yes, see guest_cpuid_has_* for an example of reading the CPUID values.
> > 
> > But if it's defined for _all_ models starting at family 21, we can just
> > do it unconditionally.
> 
> The thing is, those bits are Reserved again on the next family 22. Lemme
> take a look at guest_cpuid_has_* and see how ugly it gets.

Ok, I see there's guest_cpuid_is_amd() but I'd need also family and model.

How about adding also

guest_cpuid_family(), guest_cpuid_model(), guest_cpuid_stepping()? Those
could be quite useful in other contexts maybe.

Or, I can do a single function which simply returns CPUID_1_EAX of the
guest vcpu and caller can then pick stuff apart...

Thoughts?

-- 
Regards/Gruss,
    Boris.

ECO tip #101: Trim your mails when you reply.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Shut up unhandled MSR warnings
  2015-11-12 12:16     ` Borislav Petkov
@ 2015-11-12 12:28       ` Paolo Bonzini
  0 siblings, 0 replies; 5+ messages in thread
From: Paolo Bonzini @ 2015-11-12 12:28 UTC (permalink / raw)
  To: Borislav Petkov; +Cc: Jörg Rödel, kvm ML, lkml



On 12/11/2015 13:16, Borislav Petkov wrote:
>>> > > Yes, see guest_cpuid_has_* for an example of reading the CPUID values.
>>> > > 
>>> > > But if it's defined for _all_ models starting at family 21, we can just
>>> > > do it unconditionally.
>> > 
>> > The thing is, those bits are Reserved again on the next family 22. Lemme
>> > take a look at guest_cpuid_has_* and see how ugly it gets.
> 
> Ok, I see there's guest_cpuid_is_amd() but I'd need also family and model.
> 
> How about adding also
> 
> guest_cpuid_family(), guest_cpuid_model(), guest_cpuid_stepping()? Those
> could be quite useful in other contexts maybe.

Sure, that's what I meant by "for an example". :)

Paolo

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-11-12 12:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-12 10:13 Shut up unhandled MSR warnings Borislav Petkov
2015-11-12 10:33 ` Paolo Bonzini
2015-11-12 10:59   ` Borislav Petkov
2015-11-12 12:16     ` Borislav Petkov
2015-11-12 12:28       ` Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox