Skip to content

Commit 4943c10

Browse files
Add streamMode parameter passed to AubManager
Change-Id: If074579fdf17c7709c33d08ccdfbf9dc80e3adc8
1 parent c9f75d3 commit 4943c10

File tree

8 files changed

+108
-10
lines changed

8 files changed

+108
-10
lines changed

runtime/aub/aub_center.cpp

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,29 @@
88
#include "runtime/aub/aub_center.h"
99
#include "runtime/aub/aub_helper.h"
1010
#include "runtime/helpers/hw_info.h"
11+
#include "runtime/helpers/options.h"
1112
#include "runtime/os_interface/debug_settings_manager.h"
12-
#include "third_party/aub_stream/headers/options.h"
13+
1314
#include "third_party/aub_stream/headers/aub_manager.h"
15+
#include "third_party/aub_stream/headers/options.h"
16+
#include "third_party/aub_stream/headers/modes.h"
1417

1518
namespace OCLRT {
16-
extern aub_stream::AubManager *createAubManager(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName);
19+
extern aub_stream::AubManager *createAubManager(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode);
1720

1821
AubCenter::AubCenter(const HardwareInfo *pHwInfo, bool localMemoryEnabled, const std::string &aubFileName) {
1922
if (DebugManager.flags.UseAubStream.get()) {
2023
auto devicesCount = AubHelper::getDevicesCount(pHwInfo);
2124
auto memoryBankSize = AubHelper::getMemBankSize();
25+
uint32_t mode = getAubStreamMode(aubFileName, DebugManager.flags.SetCommandStreamReceiver.get());
26+
2227
if (DebugManager.flags.AubDumpAddMmioRegistersList.get() != "unk") {
2328
aub_stream::injectMMIOList = AubHelper::getAdditionalMmioList();
2429
}
2530
aub_stream::tbxServerIp = DebugManager.flags.TbxServer.get();
2631
aub_stream::tbxServerPort = DebugManager.flags.TbxPort.get();
2732

28-
aubManager.reset(createAubManager(pHwInfo->pPlatform->eRenderCoreFamily, devicesCount, memoryBankSize, localMemoryEnabled, aubFileName));
33+
aubManager.reset(createAubManager(pHwInfo->pPlatform->eRenderCoreFamily, devicesCount, memoryBankSize, localMemoryEnabled, aubFileName, mode));
2934
}
3035
addressMapper = std::make_unique<AddressMapper>();
3136
streamProvider = std::make_unique<AubFileStreamProvider>();
@@ -35,4 +40,29 @@ AubCenter::AubCenter() {
3540
addressMapper = std::make_unique<AddressMapper>();
3641
streamProvider = std::make_unique<AubFileStreamProvider>();
3742
}
43+
44+
uint32_t AubCenter::getAubStreamMode(const std::string &aubFileName, uint32_t csrType) {
45+
uint32_t mode = aub_stream::mode::aubFile;
46+
47+
if (csrType != CommandStreamReceiverType::CSR_HW) {
48+
switch (csrType) {
49+
case CommandStreamReceiverType::CSR_AUB:
50+
mode = aub_stream::mode::aubFile;
51+
break;
52+
case CommandStreamReceiverType::CSR_TBX:
53+
mode = aub_stream::mode::tbx;
54+
break;
55+
case CommandStreamReceiverType::CSR_TBX_WITH_AUB:
56+
mode = aub_stream::mode::aubFileAndTbx;
57+
break;
58+
default:
59+
break;
60+
}
61+
} else {
62+
if (aubFileName.size() == 0) {
63+
mode = aub_stream::mode::tbx;
64+
}
65+
}
66+
return mode;
67+
}
3868
} // namespace OCLRT

runtime/aub/aub_center.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ struct HardwareInfo;
1717
class AubCenter {
1818
public:
1919
AubCenter(const HardwareInfo *pHwInfo, bool localMemoryEnabled, const std::string &aubFileName);
20+
2021
AubCenter();
2122
virtual ~AubCenter() = default;
2223

@@ -40,6 +41,8 @@ class AubCenter {
4041
return aubManager.get();
4142
}
4243

44+
static uint32_t getAubStreamMode(const std::string &aubFileName, uint32_t csrType);
45+
4346
protected:
4447
std::unique_ptr<PhysicalAddressAllocator> physicalAddressAllocator;
4548
std::unique_ptr<AddressMapper> addressMapper;

runtime/aub/aub_stream_interface.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#include "runtime/aub/aub_center.h"
99
using namespace aub_stream;
1010
namespace OCLRT {
11-
AubManager *createAubManager(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName) {
12-
return AubManager::create(gfxFamily, devicesCount, memoryBankSize, localMemorySupported, aubFileName);
11+
AubManager *createAubManager(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode) {
12+
return AubManager::create(gfxFamily, devicesCount, memoryBankSize, localMemorySupported, aubFileName, streamMode);
1313
}
1414
} // namespace OCLRT

runtime/aub_mem_dump/aub_stream_stubs.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ MMIOList injectMMIOList;
1414
std::string tbxServerIp = "127.0.0.1";
1515
uint16_t tbxServerPort = 4321;
1616

17-
AubManager *AubManager::create(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSizeInGB, bool localMemorySupported, const std::string &aubFileName) {
17+
AubManager *AubManager::create(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSizeInGB, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode) {
1818
return nullptr;
1919
}
2020

third_party/aub_stream/headers/aub_manager.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ class AubManager {
1717
public:
1818
virtual ~AubManager() = default;
1919
virtual HardwareContext *createHardwareContext(uint32_t device, uint32_t engine) = 0;
20-
virtual void writeMemory(uint64_t gfxAddress, const void *memory, size_t size, uint32_t memoryBanks, int hint, size_t pageSize = 65536) = 0;
20+
virtual void writeMemory(uint64_t gfxAddress, const void *memory, size_t size, uint32_t memoryBanks, int hint, size_t pageSize) = 0;
2121

22-
static AubManager *create(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName);
22+
static AubManager *create(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode);
2323
};
2424

2525
} // namespace aub_stream
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/*
2+
* Copyright (C) 2019 Intel Corporation
3+
*
4+
* SPDX-License-Identifier: MIT
5+
*
6+
*/
7+
8+
#pragma once
9+
#include <cstdint>
10+
11+
namespace aub_stream {
12+
namespace mode {
13+
constexpr uint32_t aubFile = 0;
14+
constexpr uint32_t tbx = 1;
15+
constexpr uint32_t aubFileAndTbx = 2;
16+
} // namespace mode
17+
} // namespace aub_stream

unit_tests/aub/aub_center_tests.cpp

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2018 Intel Corporation
2+
* Copyright (C) 2018-2019 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -11,6 +11,8 @@
1111
#include "unit_tests/helpers/debug_manager_state_restore.h"
1212
#include "unit_tests/mocks/mock_aub_center.h"
1313

14+
#include "third_party/aub_stream/headers/modes.h"
15+
1416
#include "gtest/gtest.h"
1517
using namespace OCLRT;
1618

@@ -21,3 +23,49 @@ TEST(AubCenter, GivenUseAubStreamDebugVariableNotSetWhenAubCenterIsCreatedThenAu
2123
MockAubCenter aubCenter(platformDevices[0], false, "");
2224
EXPECT_EQ(nullptr, aubCenter.aubManager.get());
2325
}
26+
27+
TEST(AubCenter, GivenDefaultSetCommandStreamReceiverFlagAndAubFileNameWhenGettingAubStreamModeThenModeAubFileIsReturned) {
28+
DebugManagerStateRestore restorer;
29+
DebugManager.flags.UseAubStream.set(true);
30+
31+
std::string aubFile("test.aub");
32+
auto mode = AubCenter::getAubStreamMode(aubFile, CommandStreamReceiverType::CSR_AUB);
33+
34+
EXPECT_EQ(aub_stream::mode::aubFile, mode);
35+
}
36+
37+
TEST(AubCenter, GivenCsrHwAndEmptyAubFileNameWhenGettingAubStreamModeThenModeTbxIsReturned) {
38+
DebugManagerStateRestore restorer;
39+
DebugManager.flags.UseAubStream.set(true);
40+
41+
std::string aubFile("");
42+
auto mode = AubCenter::getAubStreamMode(aubFile, CommandStreamReceiverType::CSR_HW);
43+
44+
EXPECT_EQ(aub_stream::mode::tbx, mode);
45+
}
46+
47+
TEST(AubCenter, GivenCsrHwAndNotEmptyAubFileNameWhenGettingAubStreamModeThenModeAubFileIsReturned) {
48+
DebugManagerStateRestore restorer;
49+
DebugManager.flags.UseAubStream.set(true);
50+
51+
std::string aubFile("test.aub");
52+
auto mode = AubCenter::getAubStreamMode(aubFile, CommandStreamReceiverType::CSR_HW);
53+
54+
EXPECT_EQ(aub_stream::mode::aubFile, mode);
55+
}
56+
57+
TEST(AubCenter, GivenCsrTypeWhenGettingAubStreamModeThenCorrectModeIsReturned) {
58+
DebugManagerStateRestore restorer;
59+
DebugManager.flags.UseAubStream.set(true);
60+
61+
std::string aubFile("test.aub");
62+
63+
auto mode = AubCenter::getAubStreamMode(aubFile, CommandStreamReceiverType::CSR_AUB);
64+
EXPECT_EQ(aub_stream::mode::aubFile, mode);
65+
66+
mode = AubCenter::getAubStreamMode(aubFile, CommandStreamReceiverType::CSR_TBX);
67+
EXPECT_EQ(aub_stream::mode::tbx, mode);
68+
69+
mode = AubCenter::getAubStreamMode(aubFile, CommandStreamReceiverType::CSR_TBX_WITH_AUB);
70+
EXPECT_EQ(aub_stream::mode::aubFileAndTbx, mode);
71+
}

unit_tests/aub_stream_mocks/aub_stream_interface_mock.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#include "unit_tests/mocks/mock_aub_manager.h"
99

1010
namespace OCLRT {
11-
aub_stream::AubManager *createAubManager(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName) {
11+
aub_stream::AubManager *createAubManager(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode) {
1212
return new MockAubManager();
1313
}
1414
} // namespace OCLRT

0 commit comments

Comments
 (0)