Codebase list intel-compute-runtime / 470c49b
Update TSP tests Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com> Bartosz Dunajski authored 2 years ago Compute-Runtime-Automation committed 2 years ago
6 changed file(s) with 31 addition(s) and 22 deletion(s). Raw diff Collapse all Expand all
351351 eventDesc.wait = 0;
352352
353353 auto eventPool = std::unique_ptr<L0::EventPool>(L0::EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc));
354 auto event = std::unique_ptr<L0::Event>(L0::Event::create<uint32_t>(eventPool.get(), &eventDesc, device));
354 auto event = std::unique_ptr<L0::Event>(L0::Event::create<typename FamilyType::TimestampPacketType>(eventPool.get(), &eventDesc, device));
355355
356356 commandList.appendMemoryCopy(dstPtr, srcPtr, 0x100, event->toHandle(), 0, nullptr);
357357 EXPECT_GT(commandList.appendMemoryCopyBlitCalledTimes, 1u);
126126 minAllocationSize);
127127 }
128128
129 TEST_F(EventPoolCreate, givenTimestampEventsThenEventSizeSufficientForAllKernelTimestamps) {
129 HWTEST_F(EventPoolCreate, givenTimestampEventsThenEventSizeSufficientForAllKernelTimestamps) {
130130 ze_event_pool_desc_t eventPoolDesc = {};
131131 eventPoolDesc.count = 1;
132132 eventPoolDesc.flags = ZE_EVENT_POOL_FLAG_KERNEL_TIMESTAMP;
135135 ASSERT_NE(nullptr, eventPool);
136136 uint32_t maxKernelSplit = 3;
137137 uint32_t packetsSize = maxKernelSplit * NEO::TimestampPacketSizeControl::preferredPacketCount *
138 static_cast<uint32_t>(NEO::TimestampPackets<uint32_t>::getSinglePacketSize());
138 static_cast<uint32_t>(NEO::TimestampPackets<typename FamilyType::TimestampPacketType>::getSinglePacketSize());
139139 uint32_t kernelTimestampsSize = static_cast<uint32_t>(alignUp(packetsSize, 4 * MemoryConstants::cacheLineSize));
140140 EXPECT_EQ(kernelTimestampsSize, eventPool->getEventSize());
141141 }
293293 template <typename FamilyType>
294294 using AubWithTbx = CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<FamilyType>>;
295295
296 template <typename CsrT, typename... Args>
296 template <typename CsrT, typename FamilyType, typename... Args>
297297 bool isTimestampPacketNodeReleasable(Args &&...args) {
298298 CsrT csr(std::forward<Args>(args)...);
299299 auto hwInfo = csr.peekExecutionEnvironment().rootDeviceEnvironments[0]->getHardwareInfo();
304304 auto allocator = csr.getTimestampPacketAllocator();
305305 auto tag = allocator->getTag();
306306
307 uint32_t zeros[4] = {};
307 typename FamilyType::TimestampPacketType zeros[4] = {};
308308
309309 for (uint32_t i = 0; i < TimestampPacketSizeControl::preferredPacketCount; i++) {
310310 tag->assignDataToAllTimestamps(i, zeros);
341341 };
342342
343343 HWTEST_F(CommandStreamReceiverTagTests, givenCsrTypeWhenCreatingTimestampPacketAllocatorThenSetDefaultCompletionCheckType) {
344 EXPECT_TRUE(isTimestampPacketNodeReleasable<CommandStreamReceiverHw<FamilyType>>(*executionEnvironment, 0, 1));
345 EXPECT_FALSE(isTimestampPacketNodeReleasable<AUBCommandStreamReceiverHw<FamilyType>>(fileName, false, *executionEnvironment, 0, 1));
346 EXPECT_FALSE(isTimestampPacketNodeReleasable<AubWithHw<FamilyType>>(fileName, *executionEnvironment, 0, 1));
347 EXPECT_FALSE(isTimestampPacketNodeReleasable<AubWithTbx<FamilyType>>(fileName, *executionEnvironment, 0, 1));
344 bool result = isTimestampPacketNodeReleasable<CommandStreamReceiverHw<FamilyType>, FamilyType>(*executionEnvironment, 0, 1);
345 EXPECT_TRUE(result);
346
347 result = isTimestampPacketNodeReleasable<AUBCommandStreamReceiverHw<FamilyType>, FamilyType>(fileName, false, *executionEnvironment, 0, 1);
348 EXPECT_FALSE(result);
349
350 result = isTimestampPacketNodeReleasable<AubWithHw<FamilyType>, FamilyType>(fileName, *executionEnvironment, 0, 1);
351 EXPECT_FALSE(result);
352
353 result = isTimestampPacketNodeReleasable<AubWithTbx<FamilyType>, FamilyType>(fileName, *executionEnvironment, 0, 1);
354 EXPECT_FALSE(result);
348355 }
349356
350357 HWTEST_F(CommandStreamReceiverTagTests, givenCsrTypeWhenAskingForTagPoolSizeThenReturnOneForAubTbxMode) {
108108 EXPECT_EQ(1u, node1.returnCalls);
109109 }
110110
111 TEST_F(TimestampPacketSimpleTests, whenNewTagIsTakenThenReinitialize) {
111 HWTEST_F(TimestampPacketSimpleTests, whenNewTagIsTakenThenReinitialize) {
112112 MockExecutionEnvironment executionEnvironment(defaultHwInfo.get());
113113 MockMemoryManager memoryManager(executionEnvironment);
114114 MockTagAllocator<MockTimestampPacketStorage> allocator(0, &memoryManager, 1);
124124 packet.globalEnd = i++;
125125 }
126126
127 setTagToReadyState(firstNode);
127 setTagToReadyState<FamilyType>(firstNode);
128128 allocator.returnTag(firstNode);
129129
130130 auto secondNode = allocator.getTag();
229229 EXPECT_EQ(1u, csr.getPreferredTagPoolSize());
230230
231231 auto tag = csr.getTimestampPacketAllocator()->getTag();
232 setTagToReadyState(tag);
232 setTagToReadyState<FamilyType>(tag);
233233
234234 EXPECT_FALSE(tag->canBeReleased());
235235 }
524524 EXPECT_EQ(node1, mockTagAllocator->releaseReferenceNodes.at(0));
525525
526526 EXPECT_NE(node1, node2);
527 setTagToReadyState(node1);
528 setTagToReadyState(node2);
527 setTagToReadyState<FamilyType>(node1);
528 setTagToReadyState<FamilyType>(node2);
529529
530530 clReleaseEvent(event2);
531531 EXPECT_EQ(0u, mockTagAllocator->returnedToFreePoolNodes.size()); // nothing returned. cmdQ owns node2
2424 using TimestampPackets<uint32_t>::packets;
2525 };
2626
27 template <typename FamilyType>
2728 void setTagToReadyState(TagNodeBase *tagNode) {
2829 auto packetsUsed = tagNode->getPacketsUsed();
2930 tagNode->initialize();
3031
31 uint32_t zeros[4] = {};
32 typename FamilyType::TimestampPacketType zeros[4] = {};
3233
3334 for (uint32_t i = 0; i < TimestampPacketSizeControl::preferredPacketCount; i++) {
3435 tagNode->assignDataToAllTimestamps(i, zeros);
19181918 }
19191919
19201920 HWTEST_F(KernelResidencyTest, givenEnableFullKernelTuningWhenPerformTunningThenKernelConfigDataIsTracked) {
1921 using TimestampPacketType = typename FamilyType::TimestampPacketType;
19211922 DebugManagerStateRestore restorer;
19221923 DebugManager.flags.EnableKernelTunning.set(2u);
19231924
19561957 EXPECT_EQ(result->second.status, MockKernel::TunningStatus::SUBDEVICE_TUNNING_IN_PROGRESS);
19571958 EXPECT_FALSE(mockKernel.mockKernel->singleSubdevicePreferredInCurrentEnqueue);
19581959
1959 uint32_t data[4] = {static_cast<uint32_t>(container.getNode(0u)->getContextStartValue(0)),
1960 static_cast<uint32_t>(container.getNode(0u)->getGlobalStartValue(0)),
1961 2, 2};
1960 TimestampPacketType data[4] = {static_cast<TimestampPacketType>(container.getNode(0u)->getContextStartValue(0)),
1961 static_cast<TimestampPacketType>(container.getNode(0u)->getGlobalStartValue(0)),
1962 2, 2};
19621963
19631964 container.getNode(0u)->assignDataToAllTimestamps(0, data);
19641965
19691970 EXPECT_EQ(result->second.status, MockKernel::TunningStatus::SUBDEVICE_TUNNING_IN_PROGRESS);
19701971 EXPECT_FALSE(mockKernel.mockKernel->singleSubdevicePreferredInCurrentEnqueue);
19711972
1972 data[0] = static_cast<uint32_t>(subdeviceContainer.getNode(0u)->getContextStartValue(0));
1973 data[1] = static_cast<uint32_t>(subdeviceContainer.getNode(0u)->getGlobalStartValue(0));
1973 data[0] = static_cast<TimestampPacketType>(subdeviceContainer.getNode(0u)->getContextStartValue(0));
1974 data[1] = static_cast<TimestampPacketType>(subdeviceContainer.getNode(0u)->getGlobalStartValue(0));
19741975 data[2] = 2;
19751976 data[3] = 2;
19761977
19851986 EXPECT_EQ(result->second.status, MockKernel::TunningStatus::SUBDEVICE_TUNNING_IN_PROGRESS);
19861987 EXPECT_FALSE(mockKernel.mockKernel->singleSubdevicePreferredInCurrentEnqueue);
19871988
1988 data[0] = static_cast<uint32_t>(subdeviceContainer.getNode(1u)->getContextStartValue(0));
1989 data[1] = static_cast<uint32_t>(subdeviceContainer.getNode(1u)->getGlobalStartValue(0));
1989 data[0] = static_cast<TimestampPacketType>(subdeviceContainer.getNode(1u)->getContextStartValue(0));
1990 data[1] = static_cast<TimestampPacketType>(subdeviceContainer.getNode(1u)->getGlobalStartValue(0));
19901991 data[2] = 2;
19911992 data[3] = 2;
19921993