Messages in this thread | | | Date | Thu, 14 Jun 2012 14:20:22 +0200 | From | Borislav Petkov <> | Subject | Re: [PATCH 2/4] x86: Track minimum microcode revision globally v2 |
| |
On Wed, Jun 13, 2012 at 01:20:40PM -0700, Andi Kleen wrote: > From: Andi Kleen <ak@linux.intel.com> > > For bug workarounds depending on microcode revisions we need to > know the minimum microcode revision shared by all CPUs. > > This patch adds infrastructure to track this. > > Every time microcode is updated we update a global variable for > the minimum microcode revision of all the CPUs in the system. > At boot time we use the lowest available microcode (and warn > if they are inconsistent) > > At CPU hotplug or S3 resume time there is a short race window > where something might run on the CPUs but before the microcode > update notifier runs. For the current workarounds that need this > this is acceptable and shouldn't be a problem. > > Only tested on Intel CPUs, but should work for AMD too. > > v2: Use boot_cpu_data.microcode to track minimum revision (H. Peter Anvin) > Signed-off-by: Andi Kleen <ak@linux.intel.com> > ---
[ … ]
> +/* > + * Track the minimum global microcode version. On early bootup assume > + * the BIOS set all CPUs to the same revision. If that's not the case > + * some code may be already running assuming the newer revision, but > + * there's not much we can do about that (but it's unlikely to be > + * problem in early bootup) > + */ > +__cpuinit void boot_update_min_microcode(struct cpuinfo_x86 *c) > +{ > + static int boot_min_microcode; > + > + if (!boot_min_microcode) { > + boot_min_microcode = c->microcode; > + boot_cpu_data.microcode = c->microcode; > + } else if (c->microcode < boot_min_microcode) { > + pr_warn("CPU %d has lower microcode revision %x at boot than boot CPU (%x)\n", > + smp_processor_id(), > + c->microcode, > + boot_min_microcode); > + boot_cpu_data.microcode = c->microcode; > + }
Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all y Applying: x86: Track minimum microcode revision globally v2 /home/boris/kernel/.git/rebase-apply/patch:52: trailing whitespace. { /home/boris/kernel/.git/rebase-apply/patch:60: trailing whitespace. smp_processor_id(), warning: 2 lines add whitespace errors.
-- Regards/Gruss, Boris. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |