LKML Archive mirror
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@alien8.de>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: X86 ML <x86@kernel.org>, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/2] x86/microcode: Add a "microcode=" command line option
Date: Mon, 12 Jun 2023 18:04:53 +0200	[thread overview]
Message-ID: <20230612160453.GMZIdCJfmI2sCRxCFX@fat_crate.local> (raw)
In-Reply-To: <20230612154246.GLZIc89v6Q2THgsY8N@fat_crate.local>

Diff ontop with the proposed changes so that they're easily reviewable:

---
diff --git a/Documentation/arch/x86/microcode.rst b/Documentation/arch/x86/microcode.rst
index b627c6f36bcf..767e3e36935e 100644
--- a/Documentation/arch/x86/microcode.rst
+++ b/Documentation/arch/x86/microcode.rst
@@ -238,3 +238,13 @@ the final kernel image. The early loader finds them and applies them.
 Needless to say, this method is not the most flexible one because it
 requires rebuilding the kernel each time updated microcode from the CPU
 vendor is available.
+
+Loader control
+==============
+
+/sys/devices/system/cpu/microcode/control controls different aspects of
+the microcode loader's behavior and can be used to modify it by toggling
+bits in that file. Currently defined controls are:
+
+bit 0:  Do not load on all SMT threads on AMD. Loading on all logical
+        threads is enabled by default.
diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c
index 76b530697951..3755f4a3c820 100644
--- a/arch/x86/kernel/cpu/microcode/amd.c
+++ b/arch/x86/kernel/cpu/microcode/amd.c
@@ -703,7 +703,7 @@ static enum ucode_state apply_microcode_amd(int cpu)
 
 	/* need to apply patch? */
 	if ((rev > mc_amd->hdr.patch_id) ||
-	    (rev == mc_amd->hdr.patch_id && !(control & LATE_ALL_THREADS))) {
+	    (rev == mc_amd->hdr.patch_id && !(microcode_control & LATE_ALL_THREADS))) {
 		ret = UCODE_OK;
 		goto out;
 	}
diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c
index 5f3185d2814c..7ec87872756b 100644
--- a/arch/x86/kernel/cpu/microcode/core.c
+++ b/arch/x86/kernel/cpu/microcode/core.c
@@ -47,7 +47,7 @@
 static struct microcode_ops	*microcode_ops;
 static bool dis_ucode_ldr = true;
 
-unsigned long control = LATE_ALL_THREADS;
+unsigned long microcode_control = LATE_ALL_THREADS;
 
 bool initrd_gone;
 
@@ -529,7 +529,7 @@ static ssize_t processor_flags_show(struct device *dev,
 static ssize_t control_show(struct device *dev,
 			     struct device_attribute *attr, char *buf)
 {
-	return sprintf(buf, "0x%lx\n", control);
+	return sprintf(buf, "0x%lx\n", microcode_control);
 }
 
 static ssize_t control_store(struct device *dev,
@@ -544,7 +544,7 @@ static ssize_t control_store(struct device *dev,
 	if (val & CONTROL_FLAGS_MASK)
 		return -EINVAL;
 
-	control = val;
+	microcode_control = val;
 
 	return count;
 }
@@ -722,7 +722,7 @@ static int __init parse_cmdline_param(char *str)
 		str++;
 
 	if (!strcmp(str, "no_late_all"))
-		control &= ~LATE_ALL_THREADS;
+		microcode_control &= ~LATE_ALL_THREADS;
 
         return 1;
 }
diff --git a/arch/x86/kernel/cpu/microcode/internal.h b/arch/x86/kernel/cpu/microcode/internal.h
index 5e3c5fc3851f..3823c8ec8f97 100644
--- a/arch/x86/kernel/cpu/microcode/internal.h
+++ b/arch/x86/kernel/cpu/microcode/internal.h
@@ -2,7 +2,7 @@
 #ifndef __X86_MICROCODE_INTERNAL_H__
 #define __X86_MICROCODE_INTERNAL_H__
 
-extern unsigned long control;
+extern unsigned long microcode_control;
 
 /* Loader control flags. */
 enum control_flags {

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

  reply	other threads:[~2023-06-12 16:05 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-05 14:13 [PATCH 1/2] x86/microcode/AMD: Load late on both threads too Borislav Petkov
2023-06-05 14:13 ` [PATCH 2/2] x86/microcode: Add a "microcode=" command line option Borislav Petkov
2023-06-08  1:55   ` Ashok Raj
2023-06-09 12:28     ` Borislav Petkov
2023-06-09 15:37       ` Ashok Raj
2023-06-12  9:06         ` Borislav Petkov
2023-06-12  9:20   ` [tip: x86/microcode] " tip-bot2 for Borislav Petkov (AMD)
2023-06-12 15:26   ` [PATCH 2/2] " Thomas Gleixner
2023-06-12 15:42     ` Borislav Petkov
2023-06-12 16:04       ` Borislav Petkov [this message]
2023-06-12 17:23       ` Thomas Gleixner
2023-06-13  8:32         ` Borislav Petkov
2023-06-07 19:36 ` [PATCH 1/2] x86/microcode/AMD: Load late on both threads too Dave Hansen
2023-06-07 20:03   ` Borislav Petkov
2023-06-07 20:15     ` Dave Hansen
2023-08-16 20:17       ` Jim Mattson
2023-08-16 21:18         ` Borislav Petkov
2023-08-16 21:23           ` Jim Mattson
2023-08-16 21:30             ` Borislav Petkov
2023-08-16 21:36               ` Jim Mattson
2023-08-16 21:58                 ` Borislav Petkov
2023-08-16 22:37                   ` Jim Mattson
2023-08-17 15:40                     ` Borislav Petkov
2023-08-17 18:02                       ` Peter Shier
2023-08-18  8:43                         ` Borislav Petkov
2023-06-12  9:20 ` [tip: x86/microcode] " tip-bot2 for Borislav Petkov (AMD)

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=20230612160453.GMZIdCJfmI2sCRxCFX@fat_crate.local \
    --to=bp@alien8.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).