Use on-demand paging for CpuSaveStates read/write. It was measured about 200us for either read or write the PI CpuSaveStates to framework, ~400us in total on a platform with 80 CPUs with original for loop implementation. So with on-demand paging, if the framework SMI handler doesn’t read/write CpuSaveStates, ~400us will be saved. If the handler happens to use CpuSaveStates, there will be about 20us overhead for either read or write a page which contains 5 continuous CpuSaveStates.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10328 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
jgong5
2010-04-02 01:39:19 +00:00
parent 553472f644
commit ff443d3ebd
5 changed files with 475 additions and 41 deletions

View File

@@ -30,6 +30,16 @@
[Sources]
SmmBaseHelper.c
[Sources.Ia32]
PageFaultHandler.c
[Sources.X64]
X64/PageFaultHandler.asm | MSFT
X64/PageFaultHandler.asm | INTEL
X64/PageFaultHandler.S | GCC
[Packages]
MdePkg/MdePkg.dec
@@ -46,6 +56,8 @@
DevicePathLib
CacheMaintenanceLib
MemoryAllocationLib
SynchronizationLib
CpuLib
[Guids]
gEfiSmmBaseThunkCommunicationGuid