audk/MdeModulePkg/Core/Dxe
Zhi Jin 534021965f MdeModulePkg: Optimize CoreInstallMultipleProtocolInterfaces
CoreLocateDevicePath is used in CoreInstallMultipleProtocolInterfaces to
check if a Device Path Protocol instance with the same device path is
alreay installed.
CoreLocateDevicePath is a generic API, and would introduce some
unnecessary overhead for such usage.

The optimization is:
1. Implement IsDevicePathInstalled to loop all the Device Path
   Protocols installed and check if any of them matchs the given device
   path.
2. Replace CoreLocateDevicePath with IsDevicePathInstalled in
   CoreInstallMultipleProtocolInterfaces.

This optimization could save several seconds in PCI enumeration on a
system with many PCI devices.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Signed-off-by: Zhi Jin <zhi.jin@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2023-12-01 00:53:56 +00:00
..
Dispatcher MdeModulePkg: Update code to be more C11 compliant by using __func__ 2023-04-10 14:19:57 +00:00
DxeMain MdeModulePkg: Update code to be more C11 compliant by using __func__ 2023-04-10 14:19:57 +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: Update Dxe to handle unaccepted memory type 2022-11-01 10:08:10 +00:00
Hand MdeModulePkg: Optimize CoreInstallMultipleProtocolInterfaces 2023-12-01 00:53:56 +00:00
Image MdeModulePkg/DxeCore: Allow relocation of images with large address 2023-10-31 14:40:50 +00:00
Library MdeModulePkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Mem MdeModulePkg: Memory Bin Range Update Accounts for Guard Page 2023-09-18 21:21:32 +00:00
Misc MdeModulePkg: Update DumpImageRecord() in ImagePropertiesRecordLib 2023-11-27 18:55:18 +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: Move Some DXE MAT Logic to ImagePropertiesRecordLib 2023-11-27 18:55:18 +00:00
DxeMain.inf MdeModulePkg: Move Some DXE MAT Logic to ImagePropertiesRecordLib 2023-11-27 18:55:18 +00:00