[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [PATCH v3 1/8] x86/vmx: handle writes to MISC_ENABLE MSR


  • To: Roger Pau Monne <roger.pau@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: "Tian, Kevin" <kevin.tian@xxxxxxxxx>
  • Date: Mon, 7 Sep 2020 03:25:47 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dZKDT1b6XQRtnhhGeI0OCHK6fj3WdevE08Ehkp9TJF0=; b=Lv3CTX+XfPzofMYstzvfxGjYm1CShUmi0hEKVuGhM7D/PQVDIAyJ7k1yY2p83fyceBSqaqvxO83UNnJjkkPcI+0C25ogoRwFKJU1LCeBSMAfD2jvVxLgSVqaGkaFd6emlof/Hye6aO3xawr6uYossYnbLEjWHXBEwP81Ct53O5anU6SPOFV2V31K2nHP4CEsu/ZvmEnKfO3pxZnRQ7PE9K6QVdD3+IvuE9ddDx6e9CLeRgFCBL6V5FAKRullwinpLEuxleFAVRtNg8D+Ouj7P8S3OA2P5oC+Tl0M/CeSDEjfeiQ1n8so8C1586UG19i5g29P5qANYKXYZLf5m3HBjg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WyBwB7YFJKYFAK1CFHNt75aUkvmKI5C5c+9Ai9OsOmYkZrbplIaUJ1KF8h8mSqSXPXh/JkbqBcQAHBDWNCdTaDWodDwTzF9Xva5PuMpWA4r4ovdTis2PDwKGxfFSIm4yyxZrhpYRZc2MUsYw7EfOxZgXI43Oqc4LDV4dkcCw2kUB9dV2qIVgm6/3f2pN2NoCf7Pp9Xf0860Fbdk/mP8cICY4m4tLOTxws4QmAhrbOK3fAN1ABbfg4xMGSUY027tvzEU3Pdszlpr6QK93nvMygIDN2b0lDOH2m8MHOhElLvhisYVy+GGd6pIm0JODhtER7zDTk13xUzVY0oW8cLOu0w==
  • Authentication-results: citrix.com; dkim=none (message not signed) header.d=none;citrix.com; dmarc=none action=none header.from=intel.com;
  • Cc: "Nakajima, Jun" <jun.nakajima@xxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Mon, 07 Sep 2020 03:26:03 +0000
  • Dlp-product: dlpe-windows
  • Dlp-reaction: no-action
  • Dlp-version: 11.5.1.3
  • Ironport-sdr: dhcFp/fjfZ86R/FP1K5NmKyC+Da/p/QOwa+S1Ds723cEdBfg2Tc9x1b9UGzDWAZMJetBfGX41i QJwbIgJEF6zw==
  • Ironport-sdr: A0FBRaKbSSBFR9COQGVI6HvCyxrbiMbKQFmnziKojqLIzAuVGBtKl1erz3LJc8Lts/Nyy5B9J3 I3shcCmyxanw==
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHWgFCIit5SqP19VE+bDjLWdpulEqlcjDwQ
  • Thread-topic: [PATCH v3 1/8] x86/vmx: handle writes to MISC_ENABLE MSR

> From: Roger Pau Monne <roger.pau@xxxxxxxxxx>
> Sent: Tuesday, September 1, 2020 6:55 PM
> 
> Such handling consist in checking that no bits have been changed from
> the read value, if that's the case silently drop the write, otherwise
> inject a fault.
> 
> At least Windows guests will expect to write to the MISC_ENABLE MSR
> with the same value that's been read from it.

for better readability could you also add this line to the code comment
below?

with that:

        Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx>

> 
> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> ---
>  xen/arch/x86/hvm/vmx/vmx.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
> index a0d58ffbe2..4717e50d4a 100644
> --- a/xen/arch/x86/hvm/vmx/vmx.c
> +++ b/xen/arch/x86/hvm/vmx/vmx.c
> @@ -3163,7 +3163,7 @@ static int vmx_msr_write_intercept(unsigned int
> msr, uint64_t msr_content)
> 
>      switch ( msr )
>      {
> -        uint64_t rsvd;
> +        uint64_t rsvd, tmp;
> 
>      case MSR_IA32_SYSENTER_CS:
>          __vmwrite(GUEST_SYSENTER_CS, msr_content);
> @@ -3301,6 +3301,13 @@ static int vmx_msr_write_intercept(unsigned int
> msr, uint64_t msr_content)
>          /* None of these MSRs are writeable. */
>          goto gp_fault;
> 
> +    case MSR_IA32_MISC_ENABLE:
> +        /* Silently drop writes that don't change the reported value. */
> +        if ( vmx_msr_read_intercept(msr, &tmp) != X86EMUL_OKAY ||
> +             tmp != msr_content )
> +            goto gp_fault;
> +        break;
> +
>      case MSR_P6_PERFCTR(0)...MSR_P6_PERFCTR(7):
>      case MSR_P6_EVNTSEL(0)...MSR_P6_EVNTSEL(7):
>      case MSR_CORE_PERF_FIXED_CTR0...MSR_CORE_PERF_FIXED_CTR2:
> --
> 2.28.0


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.