* [PATCH] Ignore DEBUGCTL MSRs @ 2008-06-24 5:04 Alexander Graf 2008-06-24 13:40 ` Joerg Roedel 2008-07-05 12:28 ` Avi Kivity 0 siblings, 2 replies; 11+ messages in thread From: Alexander Graf @ 2008-06-24 5:04 UTC (permalink / raw) To: kvm; +Cc: joerg.roedel [-- Attachment #1: Type: text/plain, Size: 394 bytes --] Netware writes and reads to 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. To support VMX too, I put these in the generic code. Maybe the SVM code could be cleaned up to use generic code too. Signed-off-by: Alexander Graf <agraf@suse.de> [-- Attachment #2: kvm-netware.patch --] [-- Type: text/x-patch, Size: 902 bytes --] diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index fc0721e..02f8490 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -609,6 +609,11 @@ 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: + case MSR_IA32_LASTBRANCHFROMIP: + case MSR_IA32_LASTBRANCHTOIP: + case MSR_IA32_LASTINTFROMIP: + case MSR_IA32_LASTINTTOIP: case MSR_IA32_UCODE_REV: case MSR_IA32_UCODE_WRITE: break; @@ -705,6 +710,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: ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] Ignore DEBUGCTL MSRs 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 1 sibling, 2 replies; 11+ messages in thread From: Joerg Roedel @ 2008-06-24 13:40 UTC (permalink / raw) To: Alexander Graf; +Cc: kvm Hi Alex, On Tue, Jun 24, 2008 at 07:04:45AM +0200, Alexander Graf wrote: > Netware writes and reads to 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. > > To support VMX too, I put these in the generic code. Maybe the SVM > code could be cleaned up to use generic code too. I would prefer if you put that into the VMX specific code. We can't move the SVM parts of it into generic code because Barcelona has hardware support to virtualize these registers. Therefore SVM don't need that in generic code. > Signed-off-by: Alexander Graf <agraf@suse.de> > > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index fc0721e..02f8490 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -609,6 +609,11 @@ 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: > + case MSR_IA32_LASTBRANCHFROMIP: > + case MSR_IA32_LASTBRANCHTOIP: > + case MSR_IA32_LASTINTFROMIP: > + case MSR_IA32_LASTINTTOIP: > case MSR_IA32_UCODE_REV: > case MSR_IA32_UCODE_WRITE: > break; > @@ -705,6 +710,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: -- | AMD Saxony Limited Liability Company & Co. KG Operating | Wilschdorfer Landstr. 101, 01109 Dresden, Germany System | Register Court Dresden: HRA 4896 Research | General Partner authorized to represent: Center | AMD Saxony LLC (Wilmington, Delaware, US) | General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Ignore DEBUGCTL MSRs 2008-06-24 13:40 ` Joerg Roedel @ 2008-06-25 7:41 ` Alexander Graf 2008-07-05 12:27 ` Avi Kivity 1 sibling, 0 replies; 11+ messages in thread From: Alexander Graf @ 2008-06-25 7:41 UTC (permalink / raw) To: Joerg Roedel; +Cc: kvm Hi Joerg, On Jun 24, 2008, at 3:40 PM, Joerg Roedel wrote: > Hi Alex, > > On Tue, Jun 24, 2008 at 07:04:45AM +0200, Alexander Graf wrote: >> Netware writes and reads to 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. >> >> To support VMX too, I put these in the generic code. Maybe the SVM >> code could be cleaned up to use generic code too. > > I would prefer if you put that into the VMX specific code. We can't > move > the SVM parts of it into generic code because Barcelona has hardware > support to virtualize these registers. Therefore SVM don't need that > in generic code. Hum, I'd actually prefer not to handle this specifically in the VMX code. MSRs should be handled in a generic way if they do not need special treatment from the extension side, as in your case. For example if a third virtualization extension might come to life, I would rather see more things handled in x86.c than in all three targets. Any objections to this? If not, please apply, as it makes Netware work in KVM. Alex > > >> Signed-off-by: Alexander Graf <agraf@suse.de> >> >> > >> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c >> index fc0721e..02f8490 100644 >> --- a/arch/x86/kvm/x86.c >> +++ b/arch/x86/kvm/x86.c >> @@ -609,6 +609,11 @@ 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: >> + case MSR_IA32_LASTBRANCHFROMIP: >> + case MSR_IA32_LASTBRANCHTOIP: >> + case MSR_IA32_LASTINTFROMIP: >> + case MSR_IA32_LASTINTTOIP: >> case MSR_IA32_UCODE_REV: >> case MSR_IA32_UCODE_WRITE: >> break; >> @@ -705,6 +710,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: > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Ignore DEBUGCTL MSRs 2008-06-24 13:40 ` Joerg Roedel 2008-06-25 7:41 ` Alexander Graf @ 2008-07-05 12:27 ` Avi Kivity 1 sibling, 0 replies; 11+ messages in thread From: Avi Kivity @ 2008-07-05 12:27 UTC (permalink / raw) To: Joerg Roedel; +Cc: Alexander Graf, kvm Joerg Roedel wrote: > Hi Alex, > > On Tue, Jun 24, 2008 at 07:04:45AM +0200, Alexander Graf wrote: > >> Netware writes and reads to 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. >> >> To support VMX too, I put these in the generic code. Maybe the SVM >> code could be cleaned up to use generic code too. >> > > I would prefer if you put that into the VMX specific code. We can't move > the SVM parts of it into generic code because Barcelona has hardware > support to virtualize these registers. Therefore SVM don't need that > in generic code. > The code path is svm_set_msr -> kvm_set_msr_common, so even if it is in the common code path, you can still override it in svm specific code. -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Ignore DEBUGCTL MSRs 2008-06-24 5:04 [PATCH] Ignore DEBUGCTL MSRs Alexander Graf 2008-06-24 13:40 ` Joerg Roedel @ 2008-07-05 12:28 ` Avi Kivity 2008-07-09 12:48 ` Alexander Graf 1 sibling, 1 reply; 11+ messages in thread From: Avi Kivity @ 2008-07-05 12:28 UTC (permalink / raw) To: Alexander Graf; +Cc: kvm, joerg.roedel Alexander Graf wrote: > Netware writes and reads to 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. > > To support VMX too, I put these in the generic code. Maybe the SVM > code could be cleaned up to use generic code too. > Please add a pr_unimpl() when bits that cause a real processor to do something are set. -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Ignore DEBUGCTL MSRs 2008-07-05 12:28 ` Avi Kivity @ 2008-07-09 12:48 ` Alexander Graf 2008-07-10 14:01 ` Avi Kivity 0 siblings, 1 reply; 11+ messages in thread From: Alexander Graf @ 2008-07-09 12:48 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm, joerg.roedel [-- Attachment #1: Type: text/plain, Size: 693 bytes --] Avi Kivity wrote: > Alexander Graf wrote: >> Netware writes and reads to 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. >> >> To support VMX too, I put these in the generic code. Maybe the SVM >> code could be cleaned up to use generic code too. >> > > Please add a pr_unimpl() when bits that cause a real processor to do > something are set. Like this? I also removed the set handlers for the *IP MSRs, as these are read only and made it only handle debug bits, no perfmon bits. Signed-off-by: Alexander Graf <agraf@suse.de> [-- Attachment #2: kvm-netware.patch --] [-- Type: text/x-patch, Size: 1045 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 > (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: ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] Ignore DEBUGCTL MSRs 2008-07-09 12:48 ` Alexander Graf @ 2008-07-10 14:01 ` Avi Kivity 2008-07-16 9:26 ` Alexander Graf 0 siblings, 1 reply; 11+ messages in thread From: Avi Kivity @ 2008-07-10 14:01 UTC (permalink / raw) To: Alexander Graf; +Cc: kvm, joerg.roedel Alexander Graf wrote: > Avi Kivity wrote: >> Alexander Graf wrote: >>> Netware writes and reads to 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. >>> >>> To support VMX too, I put these in the generic code. Maybe the SVM >>> code could be cleaned up to use generic code too. >>> >> >> Please add a pr_unimpl() when bits that cause a real processor to do >> something are set. > > Like this? I also removed the set handlers for the *IP MSRs, as these > are read only and made it only handle debug bits, no perfmon bits. > With a changelog entry. > Signed-off-by: Alexander Graf <agraf@suse.de> > > > 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 > (DEBUGCTLMSR_LBR | DEBUGCTLMSR_BTF)) { > + /* Values other than LBR and BTF are vendor-specific, > + thus reserved and should throw a #GP */ > + return 1; > + } > '>' is too clever. '& ~(u64)(...)' is clearer. Arithmetic and logical ops don't mix well. > + 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. -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Ignore DEBUGCTL MSRs 2008-07-10 14:01 ` Avi Kivity @ 2008-07-16 9:26 ` Alexander Graf 2008-07-21 9:05 ` Avi Kivity 0 siblings, 1 reply; 11+ messages in thread From: Alexander Graf @ 2008-07-16 9:26 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm, joerg.roedel [-- Attachment #1: Type: text/plain, Size: 1718 bytes --] Avi Kivity wrote: > Alexander Graf wrote: >> Avi Kivity wrote: >>> Alexander Graf wrote: >>>> Netware writes and reads to 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. >>>> >>>> To support VMX too, I put these in the generic code. Maybe the SVM >>>> code could be cleaned up to use generic code too. >>>> >>> >>> Please add a pr_unimpl() when bits that cause a real processor to do >>> something are set. >> >> Like this? I also removed the set handlers for the *IP MSRs, as these >> are read only and made it only handle debug bits, no perfmon bits. >> > > With a changelog entry. ok. > >> + 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. --------------- 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: 1051 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 & ~(u64)(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: ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] Ignore DEBUGCTL MSRs 2008-07-16 9:26 ` Alexander Graf @ 2008-07-21 9:05 ` Avi Kivity 2008-07-22 6:00 ` Alexander Graf 0 siblings, 1 reply; 11+ messages in thread From: Avi Kivity @ 2008-07-21 9:05 UTC (permalink / raw) To: Alexander Graf; +Cc: kvm, joerg.roedel 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. -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH] Ignore DEBUGCTL MSRs 2008-07-21 9:05 ` Avi Kivity @ 2008-07-22 6:00 ` Alexander Graf 2008-07-22 7:19 ` Avi Kivity 0 siblings, 1 reply; 11+ messages in thread From: Alexander Graf @ 2008-07-22 6:00 UTC (permalink / raw) To: Avi Kivity; +Cc: kvm, joerg.roedel [-- 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: ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH] Ignore DEBUGCTL MSRs 2008-07-22 6:00 ` Alexander Graf @ 2008-07-22 7:19 ` Avi Kivity 0 siblings, 0 replies; 11+ messages in thread From: Avi Kivity @ 2008-07-22 7:19 UTC (permalink / raw) To: Alexander Graf; +Cc: kvm, joerg.roedel Alexander Graf wrote: > > 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. > Applied, thanks. -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2008-07-22 7:19 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 2008-07-22 7:19 ` Avi Kivity
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox