Laszlo,

Good suggestion! I could exchange the commit order of Patch 1/4 and Patch 2/4.

Thanks!
Jeff
-----Original Message-----
From: Laszlo Ersek [mailto:[email protected]] 
Sent: Tuesday, July 19, 2016 6:48 PM
To: Fan, Jeff <[email protected]>; [email protected]
Cc: Kinney, Michael D <[email protected]>; Tian, Feng 
<[email protected]>
Subject: Re: [edk2] [Patch 1/4] UefiCpuPkg/CpuDxe: StartupAllAPs in parallel 
mode

On 07/19/16 02:57, Jeff Fan wrote:
> SetMemoryAttributes() will sync BSP's MTRRs settings to all APs by 
> StartupAllAPs service in serial mode. It may caused much performance 
> impact if there are too much processors in system. This update is to 
> invoke StartupAllAps in parallel mode. IA32 SDM does suggest to program MTRRs 
> in parallel mode.
> 
> Cc: Michael Kinney <[email protected]>
> Cc: Feng Tian <[email protected]>
> Cc: Laszlo Ersek <[email protected]>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Jeff Fan <[email protected]>
> Reviewed-by: Feng Tian <[email protected]>
> ---
>  UefiCpuPkg/CpuDxe/CpuDxe.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/UefiCpuPkg/CpuDxe/CpuDxe.c b/UefiCpuPkg/CpuDxe/CpuDxe.c 
> index daf97bd..78b2c88 100644
> --- a/UefiCpuPkg/CpuDxe/CpuDxe.c
> +++ b/UefiCpuPkg/CpuDxe/CpuDxe.c
> @@ -1,7 +1,7 @@
>  /** @file
>    CPU DXE Module.
>  
> -  Copyright (c) 2008 - 2013, Intel Corporation. All rights 
> reserved.<BR>
> +  Copyright (c) 2008 - 2016, Intel Corporation. All rights 
> + reserved.<BR>
>    This program and the accompanying materials
>    are licensed and made available under the terms and conditions of the BSD 
> License
>    which accompanies this distribution.  The full text of the license 
> may be found at @@ -422,7 +422,7 @@ CpuSetMemoryAttributes (
>        MpStatus = MpService->StartupAllAPs (
>                                MpService,          // This
>                                SetMtrrsFromBuffer, // Procedure
> -                              TRUE,               // SingleThread
> +                              FALSE,              // SingleThread
>                                NULL,               // WaitEvent
>                                0,                  // TimeoutInMicrosecsond
>                                &MtrrSettings,      // ProcedureArgument
> 

For the patch itself:

Reviewed-by: Laszlo Ersek <[email protected]>

I think it would be preferable to reverse the order of patch #2 and patch #1 in 
this series, so that when you flip the above to multi-threaded, the library 
instance is already safe to use like that.

This reordering can be done before you commit the patches, of course.

Thanks
Laszlo
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to