diff mbox series

KVM: x86: handle MSR_IA32_DEBUGCTLMSR with report_ignored_msrs

Message ID 20201105153932.24316-1-pankaj.gupta.linux@gmail.com (mailing list archive)
State New, archived
Headers show
Series KVM: x86: handle MSR_IA32_DEBUGCTLMSR with report_ignored_msrs | expand

Commit Message

Pankaj Gupta Nov. 5, 2020, 3:39 p.m. UTC
From: Pankaj Gupta <pankaj.gupta@cloud.ionos.com>

 Guest tries to enable LBR (last branch/interrupt/exception) repeatedly,
 thus spamming the host kernel logs. As MSR_IA32_DEBUGCTLMSR is not emulated by
 KVM, its better to add the error log only with "report_ignored_msrs".
 
Signed-off-by: Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
---
 arch/x86/kvm/x86.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Paolo Bonzini Nov. 5, 2020, 5:01 p.m. UTC | #1
On 05/11/20 16:39, Pankaj Gupta wrote:
> From: Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
> 
>   Guest tries to enable LBR (last branch/interrupt/exception) repeatedly,
>   thus spamming the host kernel logs. As MSR_IA32_DEBUGCTLMSR is not emulated by
>   KVM, its better to add the error log only with "report_ignored_msrs".
>   
> Signed-off-by: Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
> ---
>   arch/x86/kvm/x86.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index f5ede41bf9e6..99c69ae43c69 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -3063,9 +3063,9 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
>   			/* Values other than LBR and BTF are vendor-specific,
>   			   thus reserved and should throw a #GP */
>   			return 1;
> -		}
> -		vcpu_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
> -			    __func__, data);
> +		} else if (report_ignored_msrs)
> +			vcpu_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
> +				    __func__, data);
>   		break;
>   	case 0x200 ... 0x2ff:
>   		return kvm_mtrr_set_msr(vcpu, msr, data);
> 

Which guest it is?  (Patch queued, but I'd like to have a better 
description).

Paolo
Pankaj Gupta Nov. 5, 2020, 6:58 p.m. UTC | #2
> >   Guest tries to enable LBR (last branch/interrupt/exception) repeatedly,
> >   thus spamming the host kernel logs. As MSR_IA32_DEBUGCTLMSR is not emulated by
> >   KVM, its better to add the error log only with "report_ignored_msrs".
> >
> > Signed-off-by: Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
> > ---
> >   arch/x86/kvm/x86.c | 6 +++---
> >   1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> > index f5ede41bf9e6..99c69ae43c69 100644
> > --- a/arch/x86/kvm/x86.c
> > +++ b/arch/x86/kvm/x86.c
> > @@ -3063,9 +3063,9 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
> >                       /* Values other than LBR and BTF are vendor-specific,
> >                          thus reserved and should throw a #GP */
> >                       return 1;
> > -             }
> > -             vcpu_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
> > -                         __func__, data);
> > +             } else if (report_ignored_msrs)
> > +                     vcpu_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
> > +                                 __func__, data);
> >               break;
> >       case 0x200 ... 0x2ff:
> >               return kvm_mtrr_set_msr(vcpu, msr, data);
> >
>
> Which guest it is?  (Patch queued, but I'd like to have a better
> description).

How about this?

Windows2016 guest tries to enable LBR (last
branch/interrupt/exception) by setting
MSR_IA32_DEBUGCTLMSR. KVM does not emulate MSR_IA32_DEBUGCTLMSR and
spams the host kernel logs with the below error messages.This patch
fixes this by enabling
error logging only with 'report_ignored_msrs'.

"kvm []: vcpu1, guest rIP: 0xfffff800a8b687d3 kvm_set_msr_common:
MSR_IA32_DEBUGCTLMSR 0x1, nop"

Thanks,
Pankaj






>
> Paolo
>
Paolo Bonzini Nov. 6, 2020, 10:08 a.m. UTC | #3
On 05/11/20 19:58, Pankaj Gupta wrote:
> Windows2016 guest tries to enable LBR (last
> branch/interrupt/exception) by setting
> MSR_IA32_DEBUGCTLMSR. KVM does not emulate MSR_IA32_DEBUGCTLMSR and
> spams the host kernel logs with the below error messages.This patch
> fixes this by enabling
> error logging only with 'report_ignored_msrs'.
> 
> "kvm []: vcpu1, guest rIP: 0xfffff800a8b687d3 kvm_set_msr_common:
> MSR_IA32_DEBUGCTLMSR 0x1, nop"

Sounds good, thanks.

Paolo
diff mbox series

Patch

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index f5ede41bf9e6..99c69ae43c69 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3063,9 +3063,9 @@  int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
 			/* Values other than LBR and BTF are vendor-specific,
 			   thus reserved and should throw a #GP */
 			return 1;
-		}
-		vcpu_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
-			    __func__, data);
+		} else if (report_ignored_msrs)
+			vcpu_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTLMSR 0x%llx, nop\n",
+				    __func__, data);
 		break;
 	case 0x200 ... 0x2ff:
 		return kvm_mtrr_set_msr(vcpu, msr, data);