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

Re: [PATCH v2 3/4] x86/microcode: Ignore microcode loading interface for revision = -1


  • To: Alejandro Vallejo <alejandro.vallejo@xxxxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Mon, 12 Jun 2023 19:36:42 +0100
  • 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=arcselector9901; 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=3cEKnvfMyMrMUYGh5TGsd8PDeIzFVmCdCfrIM2gz0xk=; b=PIMOPrqHtMscqOdz1Bn3zWHbgKJBOAp8HN3gEJfyeHILHtj1dtywf+7ZkyIIiYCZ54XWDRFxhMAP6p0aIHDQBs/O+Ko9sQdBjKGenhAzDOi+8WdJKKpTjzCUeyzE1Zm3Y7q+cWIiMrUov9ki5z4r86/E0341vFAWOeUQ5eWsDFNWmjsD/jVo/p0qnePqJ/UafvQVAuwOn1NXBNMCrbxEuPBLRYT1hgO/75vi2gZqD3rkJJzQq2+S0eKaFEuzuIQCcbzc5DrSSJsgjFieqjG0DK5tZmSU3elzOCLXhdEBkXVx+SMfhOTGgyp1YQGIlSCvnxM2OP/10GGM22VoNUZMqg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e6+GngbqxzaEhGq3oBAgIwylJsPGEQkHhZNtwaIwOg+5gwnzIsnhgJ6bLRJ7scbJnceUBBJ8cdCcntdNn6pDNGTtTyubvAYAvN+2I9XMQ4nj1RwVxAO7PMhraxVc3vVcYY+BpxXLvfgxvmHPXcIa97YaGgaY4BbQsATTtZieitu3ofJbTm9soiq8GfYRNoy7l1pmpDBNHJeGUpfmElzIw64P2PzNo90+sfA3PRJg4CFhFr7Ozuyfaqg9W6eg/ipJYKau5QGmnVdQdVBdTD8wY1/irneHna+7OV0yyLqRw9u8kLEKsBi9nJya6GeKxUW/Czahkfx8bjqEdxt809u9pg==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Jan Beulich <jbeulich@xxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Mon, 12 Jun 2023 18:37:23 +0000
  • Ironport-data: A9a23:O9eZOK9a7IpTWxlYCaKpDrUDQH+TJUtcMsCJ2f8bNWPcYEJGY0x3m jAcDWzUPv6NN2qgKIp0PYi/phhVuZDWyINqHlBs+SE8E34SpcT7XtnIdU2Y0wF+jCHgZBk+s 5hBMImowOQcFCK0SsKFa+C5xZVE/fjUAOG6UKicYXoZqTZMEE8JkQhkl/MynrlmiN24BxLlk d7pqojUNUTNNwRcawr40Ird7ks31BjOkGlA5AdmO6kR5AW2e0Q9V/rzG4ngdxMUfaEMdgKKb 76r5K20+Grf4yAsBruN+losWhRXKlJ6FVHmZkt+A8BOsDAbzsAB+v9T2M4nQVVWk120c+VZk 72hg3ASpTABZcUgkMxFO/VR/roX0aduoNcrKlDn2SCfItGvn9IBDJyCAWlvVbD09NqbDkkSy L8XBBUnMym5oLyr4ry3c7ZG2tQKeZyD0IM34hmMzBn/JNN/G9XpZfWP4tVVmjAtmspJAPDSI dIDbiZiZwjBZBsJPUoLDJU5n6GjgXyXnz9w8QrJ4/ZopTWOilUujtABM/KMEjCObexTklyVu STt+GPhDwtBHNee1SCE4jSngeqncSbTAdtLTuDlqaI26LGV7lIcVR4ceVCGmNSehB+fUdVTF E9PxzV7+MDe82TuFLERRSaQqXqJvBcaV8BXVfMz7AWAyK386AKeG2RCRTlEAPQ2uclzSTE02 1uhm9LyGScpoLCTUWia9LqfsXW1Iyd9BW0IaDIATAAFy8L+u4x1hRXKJv58FIalg9uzHiv/q w1mtwA7jrQXyMQNh6Oy+Amdhyr2/8eXCAko+g/QQ2SpqBtjY5KobJCp7l6d6utcKIGeTR+Ku 31sd9Wi0d3ixKqlzESlKNjh1pnwjxpZGFUwWWJSIqQ=
  • Ironport-hdrordr: A9a23:UCygAKiYaJlzZLFtdawpDEO7PXBQXkQji2hC6mlwRA09TyX4ra CTdZEgviMc5wx+ZJhNo6H4BEDiexzh3Lp4+5MYM7vndgzvonHAFvAB0WKB+Vzd8kTFn4Y2uM tdms5FeaDN5DBB/L3HCSaDYrAdKbK8gdiVbInlvglQZDAvR6Z87xpoTia3e3cGNTWvTvICZe ChD7F81lmdUEVSVOv+LnMOU/LYzue7867OUFo9KFoC5BOVhT2lwrvzCQLw5GZ6bxp/hY0MtV Tfk2XCl8GeWiiAu2PhPrnonutrpOc=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 05/06/2023 6:08 pm, Alejandro Vallejo wrote:
> diff --git a/xen/arch/x86/cpu/microcode/core.c 
> b/xen/arch/x86/cpu/microcode/core.c
> index 892bcec901..4f60d96d98 100644
> --- a/xen/arch/x86/cpu/microcode/core.c
> +++ b/xen/arch/x86/cpu/microcode/core.c
> @@ -874,6 +874,21 @@ int __init early_microcode_init(unsigned long 
> *module_map,
>          break;
>      }
>  
> +    if ( ucode_ops.collect_cpu_info )
> +        ucode_ops.collect_cpu_info();
> +
> +    /*
> +     * This is a special case for virtualized Xen.

I'm not sure this first sentence is useful.  I'd just start with "Some
hypervisors ..."

>  Some hypervisors
> +     * deliberately report a microcode revision of -1 to mean that they
> +     * will not accept microcode updates. We take the hint and ignore the
> +     * microcode interface in that case.
> +     */
> +    if ( this_cpu(cpu_sig).rev == ~0 )
> +    {
> +        this_cpu(cpu_sig) = (struct cpu_signature){ 0 };
> +        ucode_ops = (struct microcode_ops){ 0 };

I think we want to retain XENPF_get_ucode_revision's ability to see this ~0.

As with the following patch, we want to retain the ability to query, so
leave cpu_sig alone and only remove the apply_microcode hook.  In turn,
that probably means this wants to be an else if in the next clause down.

Moving it down also means you can drop the check for collect_cpu_info,
because it's a mandatory hook if ucode_ops was filled in.

~Andrew

> +    }
> +
>      if ( !ucode_ops.apply_microcode )
>      {
>          printk(XENLOG_WARNING "Microcode loading not available\n");




 


Rackspace

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