From: Chao Gao <chao.gao@intel.com> To: xen-devel@lists.xenproject.org Cc: "Sergey Dyasli" <sergey.dyasli@citrix.com>, "Ashok Raj" <ashok.raj@intel.com>, "Wei Liu" <wl@xen.org>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Chao Gao" <chao.gao@intel.com>, "Roger Pau Monné" <roger.pau@citrix.com> Subject: [PATCH v7 10/10] x86/microcode: always collect_cpu_info() during boot Date: Mon, 27 May 2019 16:31:31 +0800 [thread overview] Message-ID: <1558945891-3015-11-git-send-email-chao.gao@intel.com> (raw) In-Reply-To: <1558945891-3015-1-git-send-email-chao.gao@intel.com> From: Sergey Dyasli <sergey.dyasli@citrix.com> Currently cpu_sig struct is not updated during boot when either: 1. ucode_scan is set to false (e.g. no "ucode=scan" in cmdline) 2. initrd does not contain a microcode blob These will result in cpu_sig.rev being 0 which affects APIC's check_deadline_errata() and retpoline_safe() functions. Fix this by getting ucode revision early during boot and SMP bring up. While at it. Signed-off-by: Sergey Dyasli <sergey.dyasli@citrix.com> Signed-off-by: Chao Gao <chao.gao@intel.com> --- changes in v7: - rebase on patch 1~9 --- xen/arch/x86/microcode.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/xen/arch/x86/microcode.c b/xen/arch/x86/microcode.c index f4a417e..8aeb152 100644 --- a/xen/arch/x86/microcode.c +++ b/xen/arch/x86/microcode.c @@ -590,6 +590,10 @@ int __init early_microcode_init(void) if ( microcode_ops ) { + rc = microcode_ops->collect_cpu_info(&this_cpu(cpu_sig)); + if ( rc ) + return rc; + if ( ucode_mod.mod_end || ucode_blob.size ) rc = early_microcode_parse_and_update_cpu(); } -- 1.8.3.1 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
WARNING: multiple messages have this Message-ID (diff)
From: Chao Gao <chao.gao@intel.com> To: xen-devel@lists.xenproject.org Cc: "Sergey Dyasli" <sergey.dyasli@citrix.com>, "Ashok Raj" <ashok.raj@intel.com>, "Wei Liu" <wl@xen.org>, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Jan Beulich" <jbeulich@suse.com>, "Chao Gao" <chao.gao@intel.com>, "Roger Pau Monné" <roger.pau@citrix.com> Subject: [Xen-devel] [PATCH v7 10/10] x86/microcode: always collect_cpu_info() during boot Date: Mon, 27 May 2019 16:31:31 +0800 [thread overview] Message-ID: <1558945891-3015-11-git-send-email-chao.gao@intel.com> (raw) Message-ID: <20190527083131.7FczrUtQllzqmKrZWrTAHPfX4qG1nRyrvpNXNvr0Tj4@z> (raw) In-Reply-To: <1558945891-3015-1-git-send-email-chao.gao@intel.com> From: Sergey Dyasli <sergey.dyasli@citrix.com> Currently cpu_sig struct is not updated during boot when either: 1. ucode_scan is set to false (e.g. no "ucode=scan" in cmdline) 2. initrd does not contain a microcode blob These will result in cpu_sig.rev being 0 which affects APIC's check_deadline_errata() and retpoline_safe() functions. Fix this by getting ucode revision early during boot and SMP bring up. While at it. Signed-off-by: Sergey Dyasli <sergey.dyasli@citrix.com> Signed-off-by: Chao Gao <chao.gao@intel.com> --- changes in v7: - rebase on patch 1~9 --- xen/arch/x86/microcode.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/xen/arch/x86/microcode.c b/xen/arch/x86/microcode.c index f4a417e..8aeb152 100644 --- a/xen/arch/x86/microcode.c +++ b/xen/arch/x86/microcode.c @@ -590,6 +590,10 @@ int __init early_microcode_init(void) if ( microcode_ops ) { + rc = microcode_ops->collect_cpu_info(&this_cpu(cpu_sig)); + if ( rc ) + return rc; + if ( ucode_mod.mod_end || ucode_blob.size ) rc = early_microcode_parse_and_update_cpu(); } -- 1.8.3.1 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2019-05-27 8:27 UTC|newest] Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-27 8:31 [PATCH v7 00/10] improve late microcode loading Chao Gao 2019-05-27 8:31 ` [Xen-devel] " Chao Gao 2019-05-27 8:31 ` [PATCH v7 01/10] misc/xen-ucode: Upload a microcode blob to the hypervisor Chao Gao 2019-05-27 8:31 ` [Xen-devel] " Chao Gao 2019-06-04 16:14 ` Andrew Cooper 2019-06-04 16:23 ` Jan Beulich 2019-06-06 2:29 ` Chao Gao 2019-05-27 8:31 ` [PATCH v7 02/10] microcode/intel: extend microcode_update_match() Chao Gao 2019-05-27 8:31 ` [Xen-devel] " Chao Gao 2019-06-04 14:39 ` Jan Beulich 2019-06-05 13:22 ` Roger Pau Monné 2019-06-05 14:16 ` Jan Beulich 2019-06-06 8:26 ` Chao Gao 2019-06-06 9:01 ` Jan Beulich 2019-05-27 8:31 ` [PATCH v7 03/10] microcode: introduce a global cache of ucode patch Chao Gao 2019-05-27 8:31 ` [Xen-devel] " Chao Gao 2019-06-04 15:03 ` Jan Beulich 2019-06-10 5:33 ` Chao Gao 2019-06-11 6:50 ` Jan Beulich 2019-05-27 8:31 ` [PATCH v7 04/10] microcode: remove struct ucode_cpu_info Chao Gao 2019-05-27 8:31 ` [Xen-devel] " Chao Gao 2019-06-04 15:13 ` Jan Beulich 2019-06-10 7:19 ` Chao Gao 2019-05-27 8:31 ` [PATCH v7 05/10] microcode: remove pointless 'cpu' parameter Chao Gao 2019-05-27 8:31 ` [Xen-devel] " Chao Gao 2019-06-04 15:29 ` Jan Beulich 2019-06-10 7:31 ` Chao Gao 2019-05-27 8:31 ` [PATCH v7 06/10] microcode: split out apply_microcode() from cpu_request_microcode() Chao Gao 2019-05-27 8:31 ` [Xen-devel] " Chao Gao 2019-06-05 12:37 ` Jan Beulich 2019-06-11 3:32 ` Chao Gao 2019-06-11 7:08 ` Jan Beulich 2019-06-11 8:53 ` Chao Gao 2019-06-11 9:15 ` Jan Beulich 2019-05-27 8:31 ` [PATCH v7 07/10] microcode/intel: Writeback and invalidate caches before updating microcode Chao Gao 2019-05-27 8:31 ` [Xen-devel] " Chao Gao 2019-06-05 13:20 ` Jan Beulich 2019-05-27 8:31 ` [PATCH v7 08/10] x86/microcode: Synchronize late microcode loading Chao Gao 2019-05-27 8:31 ` [Xen-devel] " Chao Gao 2019-06-05 14:09 ` Jan Beulich 2019-06-11 12:36 ` Chao Gao 2019-06-11 12:58 ` Jan Beulich 2019-06-11 15:47 ` Raj, Ashok 2019-06-05 14:42 ` Roger Pau Monné 2019-05-27 8:31 ` [PATCH v7 09/10] microcode: remove microcode_update_lock Chao Gao 2019-05-27 8:31 ` [Xen-devel] " Chao Gao 2019-06-05 14:52 ` Roger Pau Monné 2019-06-05 15:15 ` Jan Beulich 2019-06-05 14:53 ` Jan Beulich 2019-06-11 12:46 ` Chao Gao 2019-06-11 13:23 ` Jan Beulich 2019-06-11 16:04 ` Raj, Ashok 2019-06-12 7:38 ` Jan Beulich 2019-06-13 14:05 ` Chao Gao 2019-06-13 14:08 ` Jan Beulich 2019-06-13 14:58 ` Chao Gao 2019-06-13 17:47 ` Raj, Ashok 2019-06-14 8:58 ` Jan Beulich 2019-05-27 8:31 ` Chao Gao [this message] 2019-05-27 8:31 ` [Xen-devel] [PATCH v7 10/10] x86/microcode: always collect_cpu_info() during boot Chao Gao 2019-06-05 14:56 ` Roger Pau Monné 2019-06-11 13:02 ` Chao Gao 2019-06-05 15:05 ` Jan Beulich 2019-06-11 12:58 ` Chao Gao
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1558945891-3015-11-git-send-email-chao.gao@intel.com \ --to=chao.gao@intel.com \ --cc=andrew.cooper3@citrix.com \ --cc=ashok.raj@intel.com \ --cc=jbeulich@suse.com \ --cc=roger.pau@citrix.com \ --cc=sergey.dyasli@citrix.com \ --cc=wl@xen.org \ --cc=xen-devel@lists.xenproject.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.