RE: [PATCH 3/5] x86, AMD: cleanup: merge common code in earlymicrocode loading

From: Yu, Fenghua
Date: Fri Aug 09 2013 - 14:44:46 EST


> From: Borislav Petkov [mailto:bp@xxxxxxxxx]
> Sent: Thursday, August 08, 2013 11:29 AM

> On Thu, Aug 08, 2013 at 12:02:38PM +0200, Borislav Petkov wrote:
> > On Wed, Aug 07, 2013 at 07:22:39PM -0700, H. Peter Anvin wrote:
> > > How much does this matter?
> >
> > I know what you're asking :-)
> >
> > And no, it doesn't really matter as we fail in the patch version
> check
> > so maybe only a comment will suffice here so that people don't get
> > confused.
>
> IOW, something like that:
>
> ---
> From: Borislav Petkov <bp@xxxxxxx>
> Date: Thu, 8 Aug 2013 20:26:24 +0200
> Subject: [PATCH] x86, microcode: Clarify loading on the AP
>
> Hold it down why we're calling the AP microcode loading routine on the
> BSP too, for future reference.
>
> Signed-off-by: Borislav Petkov <bp@xxxxxxx>
> ---
> arch/x86/kernel/cpu/common.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/common.c
> b/arch/x86/kernel/cpu/common.c
> index 25eb2747b063..58d37a27d317 100644
> --- a/arch/x86/kernel/cpu/common.c
> +++ b/arch/x86/kernel/cpu/common.c
> @@ -1226,8 +1226,12 @@ void cpu_init(void)
> int i;
>
> /*
> - * Load microcode on this cpu if a valid microcode is available.
> - * This is early microcode loading procedure.
> + * Load microcode on this cpu if a valid microcode is available.
> This
> + * is early microcode loading procedure. We execute this on the
> BSP too
> + * but since a microcode has been potentially already applied on
> the
> + * BSP, we will return prematurely here. It is easier to simply
> call it
> + * again than filtering all the possible cases when we're not
> running
> + * on the BSP.
> */
> load_ucode_ap();

Load_ucode_ap() running on BSP during boot time wastes short time on scanning ucode blob. But the time should be very short.

Reviewed-by: Fenghua Yu <fenghua.yu@xxxxxxxxx>

èº{.nÇ+‰·Ÿ®‰­†+%ŠËlzwm…ébëæìr¸›zX§»®w¥Š{ayºÊÚë,j­¢f£¢·hš‹àz¹®w¥¢¸ ¢·¦j:+v‰¨ŠwèjØm¶Ÿÿ¾«‘êçzZ+ƒùšŽŠÝj"ú!¶iO•æ¬z·švØ^¶m§ÿðà nÆàþY&—