audk/MdeModulePkg/Core
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
..
Dxe MdeModulePkg: Optimize CoreInstallMultipleProtocolInterfaces 2023-12-01 00:53:56 +00:00
DxeIplPeim MdeModulePkg: Fix misspelling 2023-09-26 20:03:23 +00:00
Pei MdeModulePkg/Core/Pei: set AprioriCount=0 before walking through next FV 2023-05-24 12:59:54 +00:00
PiSmmCore MdeModulePkg: Update DumpImageRecord() in ImagePropertiesRecordLib 2023-11-27 18:55:18 +00:00
RuntimeDxe MdeModulePkg/RuntimeDxe: clear mVirtualMapMaxIndex 2022-02-07 05:31:17 +00:00