]> git.proxmox.com Git - mirror_edk2.git/commit
MdeModulePkg: Remove event from protocol database only if registered
authorSamer El-Haj-Mahmoud <samer.el-haj-mahmoud@hpe.com>
Mon, 21 Sep 2015 01:53:34 +0000 (01:53 +0000)
committererictian <erictian@Edk2>
Mon, 21 Sep 2015 01:53:34 +0000 (01:53 +0000)
commit82f3edf26a7f60e50b0133cdc5ec689d2b7f502e
treed63cf85d5f62d2cac9ccb4d868a3873cebc50a6d
parente630f8595af8b6fd52daf68f17c2cbb4ebc541af
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
MdeModulePkg/Core/Dxe/Event/Event.c
MdeModulePkg/Core/Dxe/Event/Event.h
MdeModulePkg/Core/Dxe/Hand/Notify.c