refactor: encapsulate gmm page table manager handle

wrap destruction logic within unique ptr

set csr handle when creating page table manager

Related-To: NEO-11080
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2025-10-24 09:53:03 +00:00
committed by Compute-Runtime-Automation
parent ad05878165
commit 145f03c294
11 changed files with 43 additions and 53 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018-2022 Intel Corporation
* Copyright (C) 2018-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -9,12 +9,8 @@
namespace NEO {
GmmPageTableMngr *GmmPageTableMngr::create(GmmClientContext *clientContext, unsigned int translationTableFlags, GMM_TRANSLATIONTABLE_CALLBACKS *translationTableCb) {
auto pageTableMngr = new MockGmmPageTableMngr(translationTableFlags, translationTableCb);
GmmPageTableMngr *GmmPageTableMngr::create(GmmClientContext *clientContext, unsigned int translationTableFlags, GMM_TRANSLATIONTABLE_CALLBACKS *translationTableCb, void *aubCsrHandle) {
auto pageTableMngr = new MockGmmPageTableMngr(translationTableFlags, translationTableCb, aubCsrHandle);
return pageTableMngr;
}
void MockGmmPageTableMngr::setCsrHandle(void *csrHandle) {
passedCsrHandle = csrHandle;
setCsrHanleCalled++;
}
} // namespace NEO

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018-2022 Intel Corporation
* Copyright (C) 2018-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -17,8 +17,8 @@ class MockGmmPageTableMngr : public GmmPageTableMngr {
initContextAuxTableRegisterParamsPassed.clear();
};
MockGmmPageTableMngr(unsigned int translationTableFlags, GMM_TRANSLATIONTABLE_CALLBACKS *translationTableCb)
: translationTableFlags(translationTableFlags) {
MockGmmPageTableMngr(unsigned int translationTableFlags, GMM_TRANSLATIONTABLE_CALLBACKS *translationTableCb, void *aubCsrHandle)
: passedAubCsrHandle(aubCsrHandle), translationTableFlags(translationTableFlags) {
if (translationTableCb) {
this->translationTableCb = *translationTableCb;
}
@@ -53,10 +53,7 @@ class MockGmmPageTableMngr : public GmmPageTableMngr {
uint32_t updateAuxTableCalled = 0u;
GMM_STATUS updateAuxTableResult = GMM_STATUS::GMM_SUCCESS;
void setCsrHandle(void *csrHandle) override;
uint32_t setCsrHanleCalled = 0;
void *passedCsrHandle = nullptr;
void *passedAubCsrHandle = nullptr;
unsigned int translationTableFlags = 0;
GMM_TRANSLATIONTABLE_CALLBACKS translationTableCb = {};

View File

@@ -893,10 +893,9 @@ HWTEST_P(WddmCsrCompressionParameterizedTest, givenEnabledCompressionWhenInitial
auto mockMngr = reinterpret_cast<MockGmmPageTableMngr *>(mockWddmCsr.pageTableManager.get());
if (aubCaptureMode) {
EXPECT_EQ(1u, mockMngr->setCsrHanleCalled);
EXPECT_EQ(&mockWddmCsr, mockMngr->passedCsrHandle);
EXPECT_EQ(&mockWddmCsr, mockMngr->passedAubCsrHandle);
} else {
EXPECT_EQ(0u, mockMngr->setCsrHanleCalled);
EXPECT_EQ(nullptr, mockMngr->passedAubCsrHandle);
}
GMM_TRANSLATIONTABLE_CALLBACKS expectedTTCallbacks = {};

View File

@@ -2878,7 +2878,7 @@ class WddmMemoryManagerTest : public ::Test<GdiDllFixture> {
for (auto engine : memoryManager->getRegisteredEngines(rootDeviceIndex)) {
if (engine.getEngineUsage() == EngineUsage::regular) {
engine.commandStreamReceiver->pageTableManager.reset(GmmPageTableMngr::create(nullptr, 0, &dummyTTCallbacks));
engine.commandStreamReceiver->pageTableManager.reset(GmmPageTableMngr::create(nullptr, 0, &dummyTTCallbacks, nullptr));
}
}
}