Messages in this thread | | | Date | Tue, 06 Dec 2011 19:34:37 +0530 | From | "Srivatsa S. Bhat" <> | Subject | Re: [PATCH v4 0/7] x86: BSP or CPU0 online/offline |
| |
On 12/06/2011 06:30 PM, Borislav Petkov wrote:
> On Tue, Dec 06, 2011 at 04:17:58PM +0530, Srivatsa S. Bhat wrote: >> In this case, the other patch that I mentioned in my previous mail >> would be required (or an equivalent), because the optimization >> patch which is now in mainline, would apply the same old microcode >> image on this new CPU too, blindly. > > Not blindly, the microcode is still verified. >
I saw your other mail about the validity of this whole scenario, and I kind of agree to your point.
My thoughts below might not be so relevant/significant considering that, but anyways, just to understand what you said above: I didn't quite find where the microcode is verified if the kernel happens to have the microcode image already.
From what I saw, microcode image is not freed nor invalidated when a CPU goes down (which was introduced by the optimization patch). And hence, when the CPU comes back up, the call sequence would look something like:
case CPU_ONLINE: case CPU_ONLINE_FROZEN: * microcode_update_cpu(cpu); * microcode_resume_cpu(cpu) /* Because uci->valid was 1 */ * eventually calls apply_microcode_amd(cpu) for AMD or apply_microcode(cpu) for Intel
And both these functions simply write the microcode image to the CPU and then check whether the _write_ was successful, (not whether the required microcode version was applied).
That was why, to take care of this, the other patch (below) was written, IMHO. http://thread.gmane.org/gmane.linux.kernel/1205405/ Regards, Srivatsa S. Bhat
| |