audk/MdeModulePkg/Core
Samer El-Haj-Mahmoud 82f3edf26a MdeModulePkg: Remove event from protocol database only if registered
In a CloseEvent, an UnregisterProtocolNotify is done unconditionally.
There is a penalty associated with searching the protocol database on
every CloseEvent and impacts performance, especially during Network IO.
Unregister needs to be done only if the Event is for a RegisterProtocolNotify.

So extend the ExFlag in IEVENT to a UINT8 and define new flags that can
be set to indicate if the Event is part of a group, or registered on a
protocol notify. Then in CloseEvent, call UnregisterProtocolNotify only
if the register protocol notify flag is set.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Samer El-Haj-Mahmoud <samer.el-haj-mahmoud@hpe.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18517 6f19259b-4bc3-4df7-8a09-765794883524
2015-09-21 01:53:34 +00:00
..
Dxe MdeModulePkg: Remove event from protocol database only if registered 2015-09-21 01:53:34 +00:00
DxeIplPeim MdeModulePkg DxeIpl: Fix IA32 build failure with GCC 5.1.1 2015-08-07 23:53:53 +00:00
Pei MdeModulePkg PeiCore: Recheck SwitchStackSignal after ProcessNotifyList() 2015-08-25 07:05:48 +00:00
PiSmmCore MdeModulePkg PiSmmCore: Prevent overlap for gSmmCorePrivate and CommBuffer 2015-08-26 01:10:39 +00:00
RuntimeDxe MdeModulePkg: Roll back report status code change in RuntimeDriverSetVirtualAddressMap. 2015-04-10 01:37:41 +00:00