refactor: fixes in ults
Related-To: NEO-13789 Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
parent
6b43e7a4ec
commit
1ce795c265
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018-2024 Intel Corporation
|
* Copyright (C) 2018-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -257,6 +257,8 @@ TEST(DeviceCleanup, givenDeviceWhenItIsDestroyedThenFlushBatchedSubmissionsIsCal
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(DeviceCreation, GiveNonExistingFclWhenCreatingDeviceThenCompilerInterfaceIsNotCreated) {
|
TEST(DeviceCreation, GiveNonExistingFclWhenCreatingDeviceThenCompilerInterfaceIsNotCreated) {
|
||||||
|
DebugManagerStateRestore restore{};
|
||||||
|
debugManager.flags.ForcePreemptionMode.set(PreemptionMode::Disabled);
|
||||||
VariableBackup<const char *> frontEndDllName(&Os::frontEndDllName);
|
VariableBackup<const char *> frontEndDllName(&Os::frontEndDllName);
|
||||||
Os::frontEndDllName = "_fake_fcl1_so";
|
Os::frontEndDllName = "_fake_fcl1_so";
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018-2024 Intel Corporation
|
* Copyright (C) 2018-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -249,15 +249,6 @@ bool SipKernel::initHexadecimalArraySipKernel(SipKernelType type, Device &device
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SipKernel::freeSipKernels(RootDeviceEnvironment *rootDeviceEnvironment, MemoryManager *memoryManager) {
|
|
||||||
for (auto &sipKernel : rootDeviceEnvironment->sipKernels) {
|
|
||||||
if (sipKernel.get()) {
|
|
||||||
memoryManager->freeGraphicsMemory(sipKernel->getSipAllocation());
|
|
||||||
sipKernel.reset();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SipKernel::selectSipClassType(std::string &fileName, Device &device) {
|
void SipKernel::selectSipClassType(std::string &fileName, Device &device) {
|
||||||
const GfxCoreHelper &gfxCoreHelper = device.getGfxCoreHelper();
|
const GfxCoreHelper &gfxCoreHelper = device.getGfxCoreHelper();
|
||||||
const std::string unknown("unk");
|
const std::string unknown("unk");
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2021-2024 Intel Corporation
|
* Copyright (C) 2021-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -8,6 +8,8 @@
|
||||||
#include "shared/source/built_ins/sip.h"
|
#include "shared/source/built_ins/sip.h"
|
||||||
#include "shared/source/device/device.h"
|
#include "shared/source/device/device.h"
|
||||||
#include "shared/source/execution_environment/execution_environment.h"
|
#include "shared/source/execution_environment/execution_environment.h"
|
||||||
|
#include "shared/source/execution_environment/root_device_environment.h"
|
||||||
|
#include "shared/source/memory_manager/memory_manager.h"
|
||||||
|
|
||||||
namespace NEO {
|
namespace NEO {
|
||||||
|
|
||||||
|
@ -15,6 +17,15 @@ bool SipKernel::initSipKernel(SipKernelType type, Device &device) {
|
||||||
return SipKernel::initSipKernelImpl(type, device, nullptr);
|
return SipKernel::initSipKernelImpl(type, device, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SipKernel::freeSipKernels(RootDeviceEnvironment *rootDeviceEnvironment, MemoryManager *memoryManager) {
|
||||||
|
for (auto &sipKernel : rootDeviceEnvironment->sipKernels) {
|
||||||
|
if (sipKernel.get()) {
|
||||||
|
memoryManager->freeGraphicsMemory(sipKernel->getSipAllocation());
|
||||||
|
sipKernel.reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const SipKernel &SipKernel::getSipKernel(Device &device, OsContext *context) {
|
const SipKernel &SipKernel::getSipKernel(Device &device, OsContext *context) {
|
||||||
if (context && device.getExecutionEnvironment()->getDebuggingMode() == NEO::DebuggingMode::offline) {
|
if (context && device.getExecutionEnvironment()->getDebuggingMode() == NEO::DebuggingMode::offline) {
|
||||||
return SipKernel::getDebugSipKernel(device, context);
|
return SipKernel::getDebugSipKernel(device, context);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2021-2024 Intel Corporation
|
* Copyright (C) 2021-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -243,6 +243,15 @@ bool SipKernel::initSipKernel(SipKernelType type, Device &device) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SipKernel::freeSipKernels(RootDeviceEnvironment *rootDeviceEnvironment, MemoryManager *memoryManager) {
|
||||||
|
for (auto &sipKernel : rootDeviceEnvironment->sipKernels) {
|
||||||
|
if (sipKernel.get()) {
|
||||||
|
memoryManager->freeGraphicsMemory(sipKernel->getSipAllocation());
|
||||||
|
sipKernel.reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const SipKernel &SipKernel::getSipKernel(Device &device, OsContext *context) {
|
const SipKernel &SipKernel::getSipKernel(Device &device, OsContext *context) {
|
||||||
if (MockSipData::useMockSip) {
|
if (MockSipData::useMockSip) {
|
||||||
if (!MockSipData::called) {
|
if (!MockSipData::called) {
|
||||||
|
|
|
@ -60,6 +60,7 @@ MockDevice::MockDevice(ExecutionEnvironment *executionEnvironment, uint32_t root
|
||||||
UnitTestSetter::setRcsExposure(*executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]);
|
UnitTestSetter::setRcsExposure(*executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]);
|
||||||
UnitTestSetter::setCcsExposure(*executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]);
|
UnitTestSetter::setCcsExposure(*executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]);
|
||||||
executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]->initGmm();
|
executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]->initGmm();
|
||||||
|
executionEnvironment->calculateMaxOsContextCount();
|
||||||
|
|
||||||
if (!executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]->memoryOperationsInterface) {
|
if (!executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]->memoryOperationsInterface) {
|
||||||
executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]->memoryOperationsInterface = std::make_unique<MockMemoryOperations>();
|
executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]->memoryOperationsInterface = std::make_unique<MockMemoryOperations>();
|
||||||
|
@ -96,6 +97,17 @@ void MockDevice::resetCommandStreamReceiver(CommandStreamReceiver *newCsr, uint3
|
||||||
|
|
||||||
registeredEngine.commandStreamReceiver = newCsr;
|
registeredEngine.commandStreamReceiver = newCsr;
|
||||||
allEngines[engineIndex].commandStreamReceiver = newCsr;
|
allEngines[engineIndex].commandStreamReceiver = newCsr;
|
||||||
|
|
||||||
|
if (osContext->isPartOfContextGroup()) {
|
||||||
|
auto &secondaryEnginesForType = secondaryEngines[osContext->getEngineType()];
|
||||||
|
for (size_t i = 0; i < secondaryEnginesForType.engines.size(); i++) {
|
||||||
|
if (secondaryEnginesForType.engines[i].commandStreamReceiver == commandStreamReceivers[engineIndex].get()) {
|
||||||
|
secondaryEnginesForType.engines[i].commandStreamReceiver = newCsr;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const_cast<EngineControlContainer &>(memoryManager->getRegisteredEngines(rootDeviceIndex)).emplace_back(registeredEngine);
|
const_cast<EngineControlContainer &>(memoryManager->getRegisteredEngines(rootDeviceIndex)).emplace_back(registeredEngine);
|
||||||
osContext->incRefInternal();
|
osContext->incRefInternal();
|
||||||
newCsr->setupContext(*osContext);
|
newCsr->setupContext(*osContext);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018-2024 Intel Corporation
|
* Copyright (C) 2018-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -300,6 +300,23 @@ OsContext *MockMemoryManagerOsAgnosticContext::createAndRegisterOsContext(Comman
|
||||||
return osContext;
|
return osContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OsContext *MockMemoryManagerOsAgnosticContext::createAndRegisterSecondaryOsContext(const OsContext *primaryContext, CommandStreamReceiver *commandStreamReceiver,
|
||||||
|
const EngineDescriptor &engineDescriptor) {
|
||||||
|
auto rootDeviceIndex = commandStreamReceiver->getRootDeviceIndex();
|
||||||
|
|
||||||
|
auto osContext = new OsContext(rootDeviceIndex, 0, engineDescriptor);
|
||||||
|
osContext->incRefInternal();
|
||||||
|
|
||||||
|
osContext->setPrimaryContext(primaryContext);
|
||||||
|
|
||||||
|
UNRECOVERABLE_IF(rootDeviceIndex != osContext->getRootDeviceIndex());
|
||||||
|
|
||||||
|
secondaryEngines[rootDeviceIndex].emplace_back(commandStreamReceiver, osContext);
|
||||||
|
allRegisteredEngines[rootDeviceIndex].emplace_back(commandStreamReceiver, osContext);
|
||||||
|
|
||||||
|
return osContext;
|
||||||
|
}
|
||||||
|
|
||||||
OsContext *MockMemoryManagerWithDebuggableOsContext::createAndRegisterOsContext(CommandStreamReceiver *commandStreamReceiver,
|
OsContext *MockMemoryManagerWithDebuggableOsContext::createAndRegisterOsContext(CommandStreamReceiver *commandStreamReceiver,
|
||||||
const EngineDescriptor &engineDescriptor) {
|
const EngineDescriptor &engineDescriptor) {
|
||||||
auto osContext = new MockOsContext(0, engineDescriptor);
|
auto osContext = new MockOsContext(0, engineDescriptor);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018-2024 Intel Corporation
|
* Copyright (C) 2018-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -473,6 +473,8 @@ class MockMemoryManagerOsAgnosticContext : public MockMemoryManager {
|
||||||
MockMemoryManagerOsAgnosticContext(NEO::ExecutionEnvironment &executionEnvironment) : MockMemoryManager(executionEnvironment) {}
|
MockMemoryManagerOsAgnosticContext(NEO::ExecutionEnvironment &executionEnvironment) : MockMemoryManager(executionEnvironment) {}
|
||||||
OsContext *createAndRegisterOsContext(CommandStreamReceiver *commandStreamReceiver,
|
OsContext *createAndRegisterOsContext(CommandStreamReceiver *commandStreamReceiver,
|
||||||
const EngineDescriptor &engineDescriptor) override;
|
const EngineDescriptor &engineDescriptor) override;
|
||||||
|
OsContext *createAndRegisterSecondaryOsContext(const OsContext *primaryContext, CommandStreamReceiver *commandStreamReceiver,
|
||||||
|
const EngineDescriptor &engineDescriptor) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
class MockMemoryManagerWithDebuggableOsContext : public MockMemoryManager {
|
class MockMemoryManagerWithDebuggableOsContext : public MockMemoryManager {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018-2024 Intel Corporation
|
* Copyright (C) 2018-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -74,7 +74,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenDebugFlagSetWhenCreatingContextThen
|
||||||
aubCsr->aubManager = &mockAubManager;
|
aubCsr->aubManager = &mockAubManager;
|
||||||
|
|
||||||
aubCsr->setupContext(*pDevice->getDefaultEngine().osContext);
|
aubCsr->setupContext(*pDevice->getDefaultEngine().osContext);
|
||||||
EXPECT_EQ(0x123u, mockAubManager.contextFlags);
|
EXPECT_EQ(0x123u, mockAubManager.contextFlags & 0x123);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenItIsCreatedWithWrongGfxCoreFamilyThenNullPointerShouldBeReturned) {
|
TEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenItIsCreatedWithWrongGfxCoreFamilyThenNullPointerShouldBeReturned) {
|
||||||
|
@ -350,6 +350,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCsrAndResidentAllocationWhenProc
|
||||||
|
|
||||||
auto commandStreamReceiver = std::make_unique<MockAubCsr<FamilyType>>("", true, *pDevice->getExecutionEnvironment(), 0, pDevice->getDeviceBitfield());
|
auto commandStreamReceiver = std::make_unique<MockAubCsr<FamilyType>>("", true, *pDevice->getExecutionEnvironment(), 0, pDevice->getDeviceBitfield());
|
||||||
|
|
||||||
|
pDevice->getExecutionEnvironment()->memoryManager->reInitLatestContextId();
|
||||||
auto osContext = pDevice->getExecutionEnvironment()->memoryManager->createAndRegisterOsContext(commandStreamReceiver.get(),
|
auto osContext = pDevice->getExecutionEnvironment()->memoryManager->createAndRegisterOsContext(commandStreamReceiver.get(),
|
||||||
EngineDescriptorHelper::getDefaultDescriptor({getChosenEngineType(*defaultHwInfo), EngineUsage::regular},
|
EngineDescriptorHelper::getDefaultDescriptor({getChosenEngineType(*defaultHwInfo), EngineUsage::regular},
|
||||||
PreemptionHelper::getDefaultPreemptionMode(*defaultHwInfo)));
|
PreemptionHelper::getDefaultPreemptionMode(*defaultHwInfo)));
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018-2024 Intel Corporation
|
* Copyright (C) 2018-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -155,6 +155,7 @@ struct CommandStreamReceiverWithAubDumpTest : public ::testing::TestWithParam<bo
|
||||||
auto engineDescriptor = EngineDescriptorHelper::getDefaultDescriptor({getChosenEngineType(DEFAULT_TEST_PLATFORM::hwInfo), EngineUsage::regular},
|
auto engineDescriptor = EngineDescriptorHelper::getDefaultDescriptor({getChosenEngineType(DEFAULT_TEST_PLATFORM::hwInfo), EngineUsage::regular},
|
||||||
PreemptionHelper::getDefaultPreemptionMode(DEFAULT_TEST_PLATFORM::hwInfo));
|
PreemptionHelper::getDefaultPreemptionMode(DEFAULT_TEST_PLATFORM::hwInfo));
|
||||||
|
|
||||||
|
pDevice->getExecutionEnvironment()->memoryManager->reInitLatestContextId();
|
||||||
auto osContext = executionEnvironment->memoryManager->createAndRegisterOsContext(csrWithAubDump, engineDescriptor);
|
auto osContext = executionEnvironment->memoryManager->createAndRegisterOsContext(csrWithAubDump, engineDescriptor);
|
||||||
csrWithAubDump->setupContext(*osContext);
|
csrWithAubDump->setupContext(*osContext);
|
||||||
}
|
}
|
||||||
|
|
|
@ -366,6 +366,7 @@ HWTEST_F(TbxCommandSteamSimpleTest, givenTbxCsrAndResidentAllocationWhenProcessR
|
||||||
|
|
||||||
auto commandStreamReceiver = std::make_unique<MockTbxCsr<FamilyType>>(*pDevice->getExecutionEnvironment(), pDevice->getDeviceBitfield());
|
auto commandStreamReceiver = std::make_unique<MockTbxCsr<FamilyType>>(*pDevice->getExecutionEnvironment(), pDevice->getDeviceBitfield());
|
||||||
|
|
||||||
|
pDevice->getExecutionEnvironment()->memoryManager->reInitLatestContextId();
|
||||||
auto osContext = pDevice->getExecutionEnvironment()->memoryManager->createAndRegisterOsContext(commandStreamReceiver.get(),
|
auto osContext = pDevice->getExecutionEnvironment()->memoryManager->createAndRegisterOsContext(commandStreamReceiver.get(),
|
||||||
EngineDescriptorHelper::getDefaultDescriptor({getChosenEngineType(*defaultHwInfo), EngineUsage::regular},
|
EngineDescriptorHelper::getDefaultDescriptor({getChosenEngineType(*defaultHwInfo), EngineUsage::regular},
|
||||||
PreemptionHelper::getDefaultPreemptionMode(*defaultHwInfo)));
|
PreemptionHelper::getDefaultPreemptionMode(*defaultHwInfo)));
|
||||||
|
|
|
@ -504,6 +504,7 @@ TEST(ExecutionEnvironment, givenUnproperSetCsrFlagValueWhenInitializingMemoryMan
|
||||||
|
|
||||||
TEST(ExecutionEnvironment, whenCalculateMaxOsContexCountThenGlobalVariableHasProperValue) {
|
TEST(ExecutionEnvironment, whenCalculateMaxOsContexCountThenGlobalVariableHasProperValue) {
|
||||||
DebugManagerStateRestore restore;
|
DebugManagerStateRestore restore;
|
||||||
|
debugManager.flags.ContextGroupSize.set(0);
|
||||||
VariableBackup<uint32_t> osContextCountBackup(&MemoryManager::maxOsContextCount, 0);
|
VariableBackup<uint32_t> osContextCountBackup(&MemoryManager::maxOsContextCount, 0);
|
||||||
uint32_t numRootDevices = 17u;
|
uint32_t numRootDevices = 17u;
|
||||||
uint32_t expectedOsContextCount = 0u;
|
uint32_t expectedOsContextCount = 0u;
|
||||||
|
|
Loading…
Reference in New Issue