public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: Avi Kivity <avi@qumranet.com>
Cc: kvm@vger.kernel.org, joerg.roedel@amd.com
Subject: Re: [PATCH] Ignore DEBUGCTL MSRs
Date: Tue, 22 Jul 2008 08:00:45 +0200	[thread overview]
Message-ID: <4885778D.5010306@suse.de> (raw)
In-Reply-To: <48845141.7080701@qumranet.com>

[-- Attachment #1: Type: text/plain, Size: 1296 bytes --]

Avi Kivity wrote:
> Alexander Graf wrote:
>>>
>>>> +        pr_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
>>>> +            __func__, data);
>>>>   
>>>
>>> We can avoid the printout if data == 0, since we support that case 
>>> fully.
>>
>> I was thinking a lot about that. Even though we support data == 0, 
>> usually the kernel log output is useful for people trying to find if 
>> something is cause a problem. If they see that DEBUGCTL gets set, but 
>> won't see it getting unset, they'd get confused IMHO.
>> So the current behavior is on purpose, but if you oppose to that 
>> idea, please tell me.
>>
>
> Once it gets set, you can expect brokenness.  It doesn't matter if it 
> gets unset later.  So IMO not printing on data == 0 is best: quiet on 
> the cases we support, and loud on cases we don't.  So yes, I'd prefer 
> it changed.
>
>

Corrected patch follows...

---

Netware writes to DEBUGCTL and reads from the DEBUGCTL and LAST*IP MSRs 
without further checks and is really confused to receive a #GP during 
that. To make it happy we should just make them stubs, which is exactly 
what SVM already does.

Writes to DEBUGCTL that are vendor-specific are resembled to behave as 
if the virtual CPU does not know them.

Signed-off-by: Alexander Graf <agraf@suse.de>


[-- Attachment #2: kvm-netware.patch --]
[-- Type: text/x-patch, Size: 1132 bytes --]

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index fc0721e..10f5e95 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -609,6 +609,15 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data)
 		pr_unimpl(vcpu, "%s: MSR_IA32_MCG_CTL 0x%llx, nop\n",
 			__func__, data);
 		break;
+	case MSR_IA32_DEBUGCTLMSR:
+		if (!data) {
+			/* We support the non-activated case already */
+			break;
+		} else if (data & ~(DEBUGCTLMSR_LBR | DEBUGCTLMSR_BTF)) {
+			/* Values other than LBR and BTF are vendor-specific,
+			   thus reserved and should throw a #GP */
+			return 1;
+		}
+		pr_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
+			__func__, data);
+		break;
 	case MSR_IA32_UCODE_REV:
 	case MSR_IA32_UCODE_WRITE:
 		break;
@@ -705,6 +714,11 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata)
 	case MSR_IA32_MC0_MISC+16:
 	case MSR_IA32_UCODE_REV:
 	case MSR_IA32_EBL_CR_POWERON:
+	case MSR_IA32_DEBUGCTLMSR:
+	case MSR_IA32_LASTBRANCHFROMIP:
+	case MSR_IA32_LASTBRANCHTOIP:
+	case MSR_IA32_LASTINTFROMIP:
+	case MSR_IA32_LASTINTTOIP:
 		data = 0;
 		break;
 	case MSR_MTRRcap:

  reply	other threads:[~2008-07-22  6:00 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-24  5:04 [PATCH] Ignore DEBUGCTL MSRs Alexander Graf
2008-06-24 13:40 ` Joerg Roedel
2008-06-25  7:41   ` Alexander Graf
2008-07-05 12:27   ` Avi Kivity
2008-07-05 12:28 ` Avi Kivity
2008-07-09 12:48   ` Alexander Graf
2008-07-10 14:01     ` Avi Kivity
2008-07-16  9:26       ` Alexander Graf
2008-07-21  9:05         ` Avi Kivity
2008-07-22  6:00           ` Alexander Graf [this message]
2008-07-22  7:19             ` Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4885778D.5010306@suse.de \
    --to=agraf@suse.de \
    --cc=avi@qumranet.com \
    --cc=joerg.roedel@amd.com \
    --cc=kvm@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox