From 0dbb0f1a5ce6a9ec5213c85e5d4244cf5b061417 Mon Sep 17 00:00:00 2001 From: Jian J Wang Date: Thu, 18 Jan 2018 15:29:01 +0800 Subject: [PATCH] UefiCpuPkg/CpuDxe: fix bad boot performance If features like memory profile, protection and heap guard are enabled, a lot of more memory page attributes update actions will happen than usual. An unnecessary sync of CR0.WP setting among APs will then cause worse performance in memory allocation action. Removing the calling of SyncMemoryPageAttributesAp() in function DisableReadOnlyPageWriteProtect and EnableReadOnlyPageWriteProtect can fix this problem. In DEBUG build case, the boot performance can be boosted from 11 minute to 6 minute. Cc: Eric Dong Cc: Laszlo Ersek Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jian J Wang Reviewed-by: Eric Dong --- UefiCpuPkg/CpuDxe/CpuPageTable.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/UefiCpuPkg/CpuDxe/CpuPageTable.c b/UefiCpuPkg/CpuDxe/CpuPageTable.c index 90d9823838..a33ac5519e 100644 --- a/UefiCpuPkg/CpuDxe/CpuPageTable.c +++ b/UefiCpuPkg/CpuDxe/CpuPageTable.c @@ -597,7 +597,6 @@ DisableReadOnlyPageWriteProtect ( ) { AsmWriteCr0 (AsmReadCr0() & ~BIT16); - SyncMemoryPageAttributesAp (SyncCpuDisableWriteProtection); } /** @@ -609,7 +608,6 @@ EnableReadOnlyPageWriteProtect ( ) { AsmWriteCr0 (AsmReadCr0() | BIT16); - SyncMemoryPageAttributesAp (SyncCpuEnableWriteProtection); } /**