mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-05 18:06:32 +08:00
feature: capture multiple cpu pagefault handler
Recorded multiple page fault handlers by using vector in cpu_page_fault_manager_linux. Added a static handlerIndex in order to track the depth of handler logic to call appropriate previous handlers. Related-To: NEO-11563 Signed-off-by: Young Jin Yoon <young.jin.yoon@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
8e5e3d1e6c
commit
4b3a6e9cfe
@@ -23,11 +23,11 @@ class MockPageFaultManager : public PageFaultManager {
|
||||
using PageFaultManager::selectGpuDomainHandler;
|
||||
using PageFaultManager::transferAndUnprotectMemory;
|
||||
using PageFaultManager::unprotectAndTransferMemory;
|
||||
using PageFaultManager::verifyPageFault;
|
||||
using PageFaultManager::verifyAndHandlePageFault;
|
||||
|
||||
bool checkFaultHandlerFromPageFaultManager() override {
|
||||
checkFaultHandlerCalled++;
|
||||
return (registerFaultHandlerCalled != 0);
|
||||
return isFaultHandlerFromPageFaultManager;
|
||||
}
|
||||
void registerFaultHandler() override {
|
||||
registerFaultHandlerCalled++;
|
||||
@@ -115,6 +115,7 @@ class MockPageFaultManager : public PageFaultManager {
|
||||
size_t protectedSize = 0;
|
||||
bool isAubWritable = true;
|
||||
bool isCpuAllocEvictable = true;
|
||||
bool isFaultHandlerFromPageFaultManager = false;
|
||||
aub_stream::EngineType engineType = aub_stream::EngineType::NUM_ENGINES;
|
||||
EngineUsage engineUsage = EngineUsage::engineUsageCount;
|
||||
};
|
||||
@@ -130,8 +131,8 @@ class MockPageFaultManagerHandlerInvoke : public T {
|
||||
using T::registerFaultHandler;
|
||||
using T::T;
|
||||
|
||||
bool verifyPageFault(void *ptr) override {
|
||||
handlerInvoked = true;
|
||||
bool verifyAndHandlePageFault(void *ptr, bool handlePageFault) override {
|
||||
handlerInvoked = handlePageFault;
|
||||
if (allowCPUMemoryAccessOnPageFault) {
|
||||
this->allowCPUMemoryAccess(ptr, size);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user