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
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
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
MdeModulePkgExtra.uni