Changes to SW tags

Add SW tags to synchronization points
Add ID sequence numbers
Add new allocation type

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
This commit is contained in:
Jaime Arteaga
2021-04-02 17:53:59 +00:00
committed by Compute-Runtime-Automation
parent 5f491ed22b
commit 5c236a62fd
16 changed files with 640 additions and 33 deletions

View File

@@ -156,16 +156,6 @@ HWTEST_F(SoftwareTagsManagerTests, whenTestTagIsInsertedThenItIsSuccessful) {
freeTestCmdStream();
}
HWTEST_F(SoftwareTagsManagerTests, whenVeryLargeTagIsInsertedThenItIsNotSuccessful) {
initializeTestCmdStream<FamilyType>();
tagsManager->insertTag<FamilyType, VeryLargeTag>(*testCmdStream.get(), *pDevice);
EXPECT_EQ(0u, testCmdStream->getUsed());
freeTestCmdStream();
}
HWTEST_F(SoftwareTagsManagerTests, givenSoftwareManagerWithMaxTagsReachedWhenTagIsInsertedThenItIsNotSuccessful) {
using MI_NOOP = typename FamilyType::MI_NOOP;
@@ -186,6 +176,28 @@ HWTEST_F(SoftwareTagsManagerTests, givenSoftwareManagerWithMaxTagsReachedWhenTag
freeTestCmdStream();
}
HWTEST_F(SoftwareTagsManagerTests, givenSoftwareManagerWithMaxHeapReachedWhenTagIsInsertedThenItIsNotSuccessful) {
using MI_NOOP = typename FamilyType::MI_NOOP;
initializeTestCmdStream<FamilyType>();
size_t prevHeapOffset = tagsManager->getCurrentHeapOffset();
uint32_t i = 0;
while (tagsManager->getCurrentHeapOffset() + sizeof(VeryLargeTag) <= NEO::SWTagsManager::MAX_TAG_HEAP_SIZE) {
tagsManager->insertTag<FamilyType, VeryLargeTag>(*testCmdStream.get(), *pDevice);
i++;
}
EXPECT_EQ(tagsManager->getCurrentHeapOffset(), prevHeapOffset + (i * sizeof(VeryLargeTag)));
tagsManager->insertTag<FamilyType, VeryLargeTag>(*testCmdStream.get(), *pDevice);
EXPECT_EQ(tagsManager->getCurrentHeapOffset(), prevHeapOffset + (i * sizeof(VeryLargeTag)));
freeTestCmdStream();
}
TEST(SoftwareTagsManagerMultiDeviceTests, givenEnableSWTagsAndCreateMultipleSubDevicesWhenDeviceCreatedThenSWTagsManagerIsInitializedOnlyOnce) {
DebugManagerStateRestore dbgRestorer;
DebugManager.flags.EnableSWTags.set(true);
@@ -202,8 +214,8 @@ TEST(SoftwareTagsManagerMultiDeviceTests, givenEnableSWTagsAndCreateMultipleSubD
struct SoftwareTagsParametrizedTests : public ::testing::TestWithParam<SWTags::OpCode> {
void SetUp() override {
tagMap.emplace(OpCode::KernelName, std::make_unique<KernelNameTag>(""));
tagMap.emplace(OpCode::PipeControlReason, std::make_unique<PipeControlReasonTag>(""));
tagMap.emplace(OpCode::KernelName, std::make_unique<KernelNameTag>("", 0u));
tagMap.emplace(OpCode::PipeControlReason, std::make_unique<PipeControlReasonTag>("", 0u));
}
std::map<OpCode, std::unique_ptr<BaseTag>> tagMap;