diff --git a/runtime/aub/aub_center.cpp b/runtime/aub/aub_center.cpp index 1a602497af..9b2f37920e 100644 --- a/runtime/aub/aub_center.cpp +++ b/runtime/aub/aub_center.cpp @@ -28,10 +28,10 @@ AubCenter::AubCenter(const HardwareInfo *pHwInfo, bool localMemoryEnabled, const aubStreamMode = getAubStreamMode(aubFileName, type); if (DebugManager.flags.AubDumpAddMmioRegistersList.get() != "unk") { - aub_stream::injectMMIOList = AubHelper::getAdditionalMmioList(); + aub_stream::injectMMIOList(AubHelper::getAdditionalMmioList()); } - aub_stream::tbxServerIp = DebugManager.flags.TbxServer.get(); - aub_stream::tbxServerPort = DebugManager.flags.TbxPort.get(); + aub_stream::setTbxServerIp(DebugManager.flags.TbxServer.get()); + aub_stream::setTbxServerPort(DebugManager.flags.TbxPort.get()); aubManager.reset(createAubManager(pHwInfo->pPlatform->eProductFamily, devicesCount, memoryBankSize, localMemoryEnabled, aubStreamMode)); } @@ -57,6 +57,12 @@ AubCenter::AubCenter() { subCaptureManager = std::make_unique(""); } +AubCenter::~AubCenter() { + if (DebugManager.flags.UseAubStream.get()) { + aub_stream::injectMMIOList(MMIOList{}); + } +} + uint32_t AubCenter::getAubStreamMode(const std::string &aubFileName, uint32_t csrType) { uint32_t mode = aub_stream::mode::aubFile; diff --git a/runtime/aub/aub_center.h b/runtime/aub/aub_center.h index 8fd6a7dddc..d5f83bf8fa 100644 --- a/runtime/aub/aub_center.h +++ b/runtime/aub/aub_center.h @@ -21,7 +21,7 @@ class AubCenter { AubCenter(const HardwareInfo *pHwInfo, bool localMemoryEnabled, const std::string &aubFileName, CommandStreamReceiverType csrType); AubCenter(); - virtual ~AubCenter() = default; + virtual ~AubCenter(); void initPhysicalAddressAllocator(PhysicalAddressAllocator *pPhysicalAddressAllocator) { physicalAddressAllocator = std::unique_ptr(pPhysicalAddressAllocator); diff --git a/runtime/aub_mem_dump/aub_stream_stubs.cpp b/runtime/aub_mem_dump/aub_stream_stubs.cpp index 61a853e0de..8022094754 100644 --- a/runtime/aub_mem_dump/aub_stream_stubs.cpp +++ b/runtime/aub_mem_dump/aub_stream_stubs.cpp @@ -8,14 +8,21 @@ #include "third_party/aub_stream/headers/aub_manager.h" #include "third_party/aub_stream/headers/options.h" -namespace aub_stream { - -MMIOList injectMMIOList; -std::string tbxServerIp = "127.0.0.1"; +namespace aub_stream_stubs { uint16_t tbxServerPort = 4321; +std::string tbxServerIp = "127.0.0.1"; +} // namespace aub_stream_stubs + +namespace aub_stream { AubManager *AubManager::create(uint32_t productFamily, uint32_t devicesCount, uint64_t memoryBankSizeInGB, bool localMemorySupported, uint32_t streamMode) { return nullptr; } +extern "C" { +void injectMMIOList(MMIOList mmioList){}; +void setTbxServerPort(uint16_t port) { aub_stream_stubs::tbxServerPort = port; }; +void setTbxServerIp(std::string server) { aub_stream_stubs::tbxServerIp = server; }; +} + } // namespace aub_stream diff --git a/third_party/aub_stream/headers/options.h b/third_party/aub_stream/headers/options.h index af1680682e..94c892b8bf 100644 --- a/third_party/aub_stream/headers/options.h +++ b/third_party/aub_stream/headers/options.h @@ -13,12 +13,11 @@ namespace aub_stream { -extern std::ostream &log; -extern std::string tbxServerIp; -extern uint16_t tbxServerPort; - using MMIOPair = std::pair; using MMIOList = std::vector; -extern "C" MMIOList injectMMIOList; + +extern "C" void injectMMIOList(MMIOList mmioList); +extern "C" void setTbxServerPort(uint16_t port); +extern "C" void setTbxServerIp(std::string server); } // namespace aub_stream diff --git a/unit_tests/aub/aub_center_using_aubstream_stubs_tests.cpp b/unit_tests/aub/aub_center_using_aubstream_stubs_tests.cpp index 157334393b..2705ae14ef 100644 --- a/unit_tests/aub/aub_center_using_aubstream_stubs_tests.cpp +++ b/unit_tests/aub/aub_center_using_aubstream_stubs_tests.cpp @@ -17,6 +17,11 @@ #include "gtest/gtest.h" using namespace OCLRT; +namespace aub_stream_stubs { +extern uint16_t tbxServerPort; +extern std::string tbxServerIp; +} // namespace aub_stream_stubs + TEST(AubCenter, GivenUseAubStreamDebugVariableSetWhenAubCenterIsCreatedThenAubManagerIsNotCreated) { DebugManagerStateRestore restorer; DebugManager.flags.UseAubStream.set(true); @@ -30,11 +35,11 @@ TEST(AubCenter, GivenUseAubStreamAndTbxServerIpDebugVariableSetWhenAubCenterIsCr DebugManagerStateRestore restorer; DebugManager.flags.UseAubStream.set(true); DebugManager.flags.TbxServer.set("10.10.10.10"); - VariableBackup backup(&aub_stream::tbxServerIp); + VariableBackup backup(&aub_stream_stubs::tbxServerIp); MockAubCenter aubCenter(platformDevices[0], false, "", CommandStreamReceiverType::CSR_TBX); - EXPECT_STREQ("10.10.10.10", aub_stream::tbxServerIp.c_str()); + EXPECT_STREQ("10.10.10.10", aub_stream_stubs::tbxServerIp.c_str()); } TEST(AubCenter, GivenUseAubStreamAndTbxServerPortDebugVariableSetWhenAubCenterIsCreatedThenServerIpIsModified) { @@ -42,11 +47,11 @@ TEST(AubCenter, GivenUseAubStreamAndTbxServerPortDebugVariableSetWhenAubCenterIs DebugManager.flags.UseAubStream.set(true); DebugManager.flags.TbxPort.set(1234); - VariableBackup backup(&aub_stream::tbxServerPort); + VariableBackup backup(&aub_stream_stubs::tbxServerPort); uint16_t port = 1234u; - EXPECT_NE(port, aub_stream::tbxServerPort); + EXPECT_NE(port, aub_stream_stubs::tbxServerPort); MockAubCenter aubCenter(platformDevices[0], false, "", CommandStreamReceiverType::CSR_TBX); - EXPECT_EQ(port, aub_stream::tbxServerPort); + EXPECT_EQ(port, aub_stream_stubs::tbxServerPort); } diff --git a/unit_tests/command_stream/aub_command_stream_receiver_2_tests.cpp b/unit_tests/command_stream/aub_command_stream_receiver_2_tests.cpp index 1c83baa80a..d607a5e160 100644 --- a/unit_tests/command_stream/aub_command_stream_receiver_2_tests.cpp +++ b/unit_tests/command_stream/aub_command_stream_receiver_2_tests.cpp @@ -722,21 +722,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenEngineI EXPECT_NE(0u, aubCsr->handle); } -struct InjectMmmioTest : public AubCommandStreamReceiverTests { - void SetUp() override { - AubCommandStreamReceiverTests::SetUp(); - injectMmioListCopy = aub_stream::injectMMIOList; - } - - void TearDown() override { - AubCommandStreamReceiverTests::TearDown(); - aub_stream::injectMMIOList = injectMmioListCopy; - aub_stream::injectMMIOList.shrink_to_fit(); - } - - private: - MMIOList injectMmioListCopy; -}; +using InjectMmmioTest = AubCommandStreamReceiverTests; HWTEST_F(InjectMmmioTest, givenAddMmioKeySetToZeroWhenInitAdditionalMmioCalledThenDoNotWriteMmio) { DebugManagerStateRestore stateRestore;