audk/MdeModulePkg/Core/Dxe
Xiaoqiang Zhang 0596e5fa05 MdeModulePkg: CoreValidateHandle Optimization
REF : https://bugzilla.tianocore.org/show_bug.cgi?id=4817

Before entering BIOS setup, CoreValidateHandle function executed
over 600,000 times during BDS phase on latest 8S server platform.
In CoreValidateHandle function, current implementation will go
through the doubly-linked list handle database in each call, and
this will have big impact on boot performance.
The optimization is using Red-black tree to store the EFI handle
address when insert each EFI handle into the handle database, and
remove the handle from Red-black tree if the handle is removed
from the handle database. CoreValidateHandle function changed to
go through the Red-black tree.
After verification on latest 8S server platform, BDS boot time can
save 20s+ after this change.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Andrew Fish <afish@apple.com>
Tested-by: Xiaoqiang Zhang <xiaoqiang.zhang@intel.com>
2024-08-30 11:42:41 +00:00
..
Dispatcher MdeModulePkg: Update code to be more C11 compliant by using __func__ 2023-04-10 14:19:57 +00:00
DxeMain MdeModulePkg: CoreValidateHandle Optimization 2024-08-30 11:42:41 +00:00
Event MdeModulePkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
FwVol MdeModulePkg/Core/Dxe: Fix memory leak issue in FwVol.c 2023-09-11 02:17:51 +00:00
FwVolBlock MdeModulePkg/Core/Dxe: Fix memory leak issue in FwVolBlock.c 2023-09-11 02:17:51 +00:00
Gcd MdeModulePkg: Gcd: Only Update gMemoryMap Attributes if Correct GCD Type 2024-08-29 12:30:12 +00:00
Hand MdeModulePkg: CoreValidateHandle Optimization 2024-08-30 11:42:41 +00:00
Image MdeModulePkg: Dxe: add LOONGARCH64 to mMachineTypeInfo 2024-02-02 01:52:58 +00:00
Library MdeModulePkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Mem MdeModulePkg: Remove EFI_MEMORY_* Defines 2024-07-26 03:08:20 +00:00
Misc MdeModulePkg: MAT Set RO/XP on Code/Data Sections Outside Image Memory 2024-08-29 08:47:26 +00:00
SectionExtraction MdeModulePkg: Update code to be more C11 compliant by using __func__ 2023-04-10 14:19:57 +00:00
DxeCore.uni MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxeCoreExtra.uni MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00
DxeMain.h MdeModulePkg: CoreValidateHandle Optimization 2024-08-30 11:42:41 +00:00
DxeMain.inf MdeModulePkg: CoreValidateHandle Optimization 2024-08-30 11:42:41 +00:00