audk/MdeModulePkg
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
..
Application MdeModulePkg/CapsuleApp: Add EFIAPI to CompareFileNameInAlphabet() 2023-05-06 17:48:49 +00:00
Bus MdeModulePkg: UsbRndis: get rid of magic values 2023-10-16 22:49:33 +00:00
Core MdeModulePkg: Optimize CoreInstallMultipleProtocolInterfaces 2023-12-01 00:53:56 +00:00
Include MdeModulePkg: Update DumpImageRecord() in ImagePropertiesRecordLib 2023-11-27 18:55:18 +00:00
Library MdeModulePkg/DxeCapsuleLibFmp: Fix crash with VirtualAddressMap omitted 2023-11-28 19:10:19 +00:00
Logo MdeModulePkg/Logo: Add LoongArch64 architecture. 2022-10-14 02:16:33 +00:00
Test MdeModulePkg: Update DumpImageRecord() in ImagePropertiesRecordLib 2023-11-27 18:55:18 +00:00
Universal MdeModulePkg/Variable: Merge variable header + data update into one step 2023-11-29 01:45:25 +00:00
MdeModulePkg.ci.yaml MdeModulePkg: CI: Add PrEval entry 2023-10-23 20:17:52 +00:00
MdeModulePkg.dec MdeModulePkg: Add ImagePropertiesRecordLib 2023-11-27 18:55:18 +00:00
MdeModulePkg.dsc MdeModulePkg: Add ImagePropertiesRecordLib 2023-11-27 18:55:18 +00:00
MdeModulePkg.uni MdeModulePkg: Add TraceHubDebugSysTLib library 2023-05-11 07:26:38 +00:00
MdeModulePkgExtra.uni MdeModulePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:08 -07:00