Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70989449 authored by Srivatsa S. Bhat's avatar Srivatsa S. Bhat Committed by Borislav Petkov
Browse files

x86, microcode: Don't request microcode from userspace unnecessarily



Requesting the microcode from userspace *every time* when onlining CPUs
(during a CPU hotplug operation) is unnecessary. Thus, ensure that
once the kernel gets the microcode after booting, it is not freed nor
invalidated when a CPU goes offline, so that it can be reused when that
CPU comes back online, without requesting userspace for it again. As a
result, the CPU hotplug operations become faster as well.

Signed-off-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Acked-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
Acked-by: default avatarAndreas Herrmann <andreas.herrmann3@amd.com>
Link: http://lkml.kernel.org/r/4E91F908.5010006@linux.vnet.ibm.com


Signed-off-by: default avatarBorislav Petkov <borislav.petkov@amd.com>
parent 37cf9516
Loading
Loading
Loading
Loading
+7 −1
Original line number Original line Diff line number Diff line
@@ -483,7 +483,13 @@ mc_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu)
		sysfs_remove_group(&sys_dev->kobj, &mc_attr_group);
		sysfs_remove_group(&sys_dev->kobj, &mc_attr_group);
		pr_debug("CPU%d removed\n", cpu);
		pr_debug("CPU%d removed\n", cpu);
		break;
		break;
	case CPU_DEAD:

	/*
	 * When a CPU goes offline, don't free up or invalidate the copy of
	 * the microcode in kernel memory, so that we can reuse it when the
	 * CPU comes back online without unnecessarily requesting the userspace
	 * for it again.
	 */
	case CPU_UP_CANCELED_FROZEN:
	case CPU_UP_CANCELED_FROZEN:
		/* The CPU refused to come up during a system resume */
		/* The CPU refused to come up during a system resume */
		microcode_fini_cpu(cpu);
		microcode_fini_cpu(cpu);