Fixed AUB capture in HW mode for umd-migrated shared allocations

Signed-off-by: Milczarek, Slawomir <slawomir.milczarek@intel.com>
This commit is contained in:
Milczarek, Slawomir
2022-03-30 11:08:22 +00:00
committed by Compute-Runtime-Automation
parent bce96e666f
commit 7cd4ca5ce7
2 changed files with 7 additions and 10 deletions

View File

@@ -119,9 +119,7 @@ inline void PageFaultManager::migrateStorageToCpuDomain(void *ptr, PageFaultData
} }
void PageFaultManager::selectGpuDomainHandler() { void PageFaultManager::selectGpuDomainHandler() {
if (DebugManager.flags.SetCommandStreamReceiver.get() == CommandStreamReceiverType::CSR_AUB || if (DebugManager.flags.SetCommandStreamReceiver.get() > CommandStreamReceiverType::CSR_HW) {
DebugManager.flags.SetCommandStreamReceiver.get() == CommandStreamReceiverType::CSR_TBX ||
DebugManager.flags.SetCommandStreamReceiver.get() == CommandStreamReceiverType::CSR_TBX_WITH_AUB) {
this->gpuDomainHandler = &PageFaultManager::handleGpuDomainTransferForAubAndTbx; this->gpuDomainHandler = &PageFaultManager::handleGpuDomainTransferForAubAndTbx;
} }
} }

View File

@@ -640,7 +640,8 @@ TEST_F(PageFaultManagerTest, givenUnifiedMemoryAllocWhenSetAubWritableIsCalledTh
TEST_F(PageFaultManagerTest, givenAubOrTbxCsrWhenSelectingHandlerThenAubAndTbxGpuDomainHandlerIsSet) { TEST_F(PageFaultManagerTest, givenAubOrTbxCsrWhenSelectingHandlerThenAubAndTbxGpuDomainHandlerIsSet) {
DebugManagerStateRestore restorer; DebugManagerStateRestore restorer;
for (auto csrType : {CommandStreamReceiverType::CSR_AUB, CommandStreamReceiverType::CSR_TBX, CommandStreamReceiverType::CSR_TBX_WITH_AUB}) { for (auto csrType : {CommandStreamReceiverType::CSR_AUB, CommandStreamReceiverType::CSR_TBX,
CommandStreamReceiverType::CSR_HW_WITH_AUB, CommandStreamReceiverType::CSR_TBX_WITH_AUB}) {
DebugManager.flags.SetCommandStreamReceiver.set(csrType); DebugManager.flags.SetCommandStreamReceiver.set(csrType);
auto pageFaultManager2 = std::make_unique<MockPageFaultManager>(); auto pageFaultManager2 = std::make_unique<MockPageFaultManager>();
@@ -655,14 +656,12 @@ TEST_F(PageFaultManagerTest, givenHwCsrWhenSelectingHandlerThenHwGpuDomainHandle
EXPECT_EQ(pageFaultManager->getHwHandlerAddress(), reinterpret_cast<void *>(pageFaultManager->gpuDomainHandler)); EXPECT_EQ(pageFaultManager->getHwHandlerAddress(), reinterpret_cast<void *>(pageFaultManager->gpuDomainHandler));
for (auto csrType : {CommandStreamReceiverType::CSR_HW, CommandStreamReceiverType::CSR_HW_WITH_AUB}) { DebugManager.flags.SetCommandStreamReceiver.set(CommandStreamReceiverType::CSR_HW);
DebugManager.flags.SetCommandStreamReceiver.set(csrType);
auto pageFaultManager2 = std::make_unique<MockPageFaultManager>(); auto pageFaultManager2 = std::make_unique<MockPageFaultManager>();
pageFaultManager2->selectGpuDomainHandler(); pageFaultManager2->selectGpuDomainHandler();
EXPECT_EQ(pageFaultManager->gpuDomainHandler, reinterpret_cast<void *>(pageFaultManager2->gpuDomainHandler)); EXPECT_EQ(pageFaultManager->gpuDomainHandler, reinterpret_cast<void *>(pageFaultManager2->gpuDomainHandler));
}
} }
struct PageFaultManagerTestWithDebugFlag : public ::testing::TestWithParam<uint32_t> { struct PageFaultManagerTestWithDebugFlag : public ::testing::TestWithParam<uint32_t> {