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:
@@ -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
|
||||
|
Reference in New Issue
Block a user