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

Re: [PATCH 3/4] x86/hvm: Remove cross-vendor checks from MSR handlers.


  • To: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Fri, 23 Jan 2026 18:35:51 +0000
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UDYKtXRIwGDvhRwvbrWZX7feYB597Gsg6ZTvn4WzwH0=; b=yVm0u9eswUOo2LYYZBu06pA4sUNOelnwfKSoMA66kRJDwa/QYhxvRTaBIBHssVEt6uh33/YIIJaB1fCCREmqFhc9bqwMYNEykwS5h72BcDJUvgl/WGJ3qUvf4JbkxCaYAwni9rb9t7FkVfClJQ4hK1OvqJo/OXFBoXgkOEcAZCfibYHvesS87jBKnSChlfpendWe0mb5ExFsfDOH5bZRoBLQEOYPgxfTUzUYtYD73MPnilwUTBxLPsuGIwGb24Br7b+jaDXc9rNny+nci/eUJTjkvhZ9g9x1hfGO85O7ZenSwlfFLrCQSjMR+aI7vUI5MdkTeYRgwx5cO0nvVeq7Vg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Wyt3Q5snIfwoEd5RzsXePb4/PrVsUkrfjobKfBpw/nwLyYB7fthO/MUji41f5ZgU78NzxZx1NgDqjED8xMZCX7Rfj5gfjNmLm9tSAQb9vhHmijA516zGgKRLJ8MIX6Em1QS+ueW4WuNBOpEgOWzNhz1IH/txQMkUOVcAK857+W1t9ExakeYNN0DukA/OtxuC/lb3SJwuUa7d0xo5qQ3SkRlAONTHtXSkFDniQqkOSZLGFobgo56gvN33fmXPkqyIz50ziwRFIasJyYODn+m9nrbTVQ2qjTP/Z+qXMQg3n9qEau5+IGhFyFWwf+TcQSPhmAsfio2urv59ed070fTK1A==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Delivery-date: Fri, 23 Jan 2026 18:36:05 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 22/01/2026 4:49 pm, Alejandro Vallejo wrote:
> Not a functional change now that cross-vendor guests are not launchable.
>
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>
> ---
>  xen/arch/x86/msr.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/xen/arch/x86/msr.c b/xen/arch/x86/msr.c
> index ad75a2e108..c9cc4f0692 100644
> --- a/xen/arch/x86/msr.c
> +++ b/xen/arch/x86/msr.c
> @@ -169,9 +169,9 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t 
> *val)
>          break;
>  
>      case MSR_IA32_PLATFORM_ID:
> -        if ( !(cp->x86_vendor & X86_VENDOR_INTEL) ||
> -             !(boot_cpu_data.x86_vendor & X86_VENDOR_INTEL) )
> +        if ( cp->x86_vendor != X86_VENDOR_INTEL )
>              goto gp_fault;
> +
>          rdmsrl(MSR_IA32_PLATFORM_ID, *val);
>          break;
>  
> @@ -190,8 +190,6 @@ int guest_rdmsr(struct vcpu *v, uint32_t msr, uint64_t 
> *val)
>           * the guest.
>           */
>          if ( !(cp->x86_vendor & (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
> -             !(boot_cpu_data.x86_vendor &
> -               (X86_VENDOR_INTEL | X86_VENDOR_AMD)) ||
>               rdmsr_safe(MSR_AMD_PATCHLEVEL, val) )
>              goto gp_fault;
>          break;

Hmm.  Thinking about it, this would probably be cleaner to get rid of
the cp->x86_vendor field entirely, and retain the boot_cpu_data side.

Additionally, this would fix a minor problem I'm having cleaning up the
CPUID code for XSAVE fixes, and provide better cache locality.

~Andrew



 


Rackspace

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