Use on-demand paging for CpuSaveStates read/write. It was measured about 200us for...
authorjgong5 <jgong5@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 2 Apr 2010 01:39:19 +0000 (01:39 +0000)
committerjgong5 <jgong5@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 2 Apr 2010 01:39:19 +0000 (01:39 +0000)
commit41662724ff1f4aa0742d075329c6c23881fc99c8
tree1c40a323e2827d702ae8669ed306cca1aa94e70d
parent47bcd0448e75f2b8c866c4ec5df3cec3bbb1d065
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@10328 6f19259b-4bc3-4df7-8a09-765794883524
edk2/EdkCompatibilityPkg/Compatibility/SmmBaseHelper/PageFaultHandler.c [new file with mode: 0644]
edk2/EdkCompatibilityPkg/Compatibility/SmmBaseHelper/SmmBaseHelper.c
edk2/EdkCompatibilityPkg/Compatibility/SmmBaseHelper/SmmBaseHelper.inf
edk2/EdkCompatibilityPkg/Compatibility/SmmBaseHelper/X64/PageFaultHandler.S [new file with mode: 0644]
edk2/EdkCompatibilityPkg/Compatibility/SmmBaseHelper/X64/PageFaultHandler.asm [new file with mode: 0644]