kfdtest: Add CreateDestroyCpQueue and CreateDestroySdmaQueue test
Those two tests cover the basic queue creation and destruction without submitting packets to CP and SDMA user queues. During bringup, they bring values in term of untangling the issues arising in queue creation and packet execution, which are two very different kinds. Because of those two tests, we also rename some existing tests as follows: CreateCpQueue -> SubmitPacketCpQueue CreateSdmaQueue -> SubmitPacketSdmaQueue CreateMultipleCpQueues -> MultipleCpQueues CreateMultipleSdmaQueues -> MultipleSdmaQueues Lastly, move MultipleCpQueues test closer to the CP queue section rather than leaving it behind the SDMA queue section. Change-Id: I110fb3f3fb21878339045dd1d1c8c9d61b8988b7 Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>
Этот коммит содержится в:
коммит произвёл
Yong Zhao
родитель
e109ce541c
Коммит
5b18614eaf
@@ -55,7 +55,22 @@ void KFDQMTest::TearDown() {
|
||||
ROUTINE_END
|
||||
}
|
||||
|
||||
TEST_F(KFDQMTest, CreateCpQueue) {
|
||||
TEST_F(KFDQMTest, CreateDestroyCpQueue) {
|
||||
TEST_START(TESTPROFILE_RUNALL)
|
||||
|
||||
int defaultGPUNode = m_NodeInfo.HsaDefaultGPUNode();
|
||||
ASSERT_GE(defaultGPUNode, 0) << "failed to get default GPU Node";
|
||||
|
||||
PM4Queue queue;
|
||||
|
||||
ASSERT_SUCCESS(queue.Create(defaultGPUNode));
|
||||
|
||||
EXPECT_SUCCESS(queue.Destroy());
|
||||
|
||||
TEST_END
|
||||
}
|
||||
|
||||
TEST_F(KFDQMTest, SubmitPacketCpQueue) {
|
||||
TEST_START(TESTPROFILE_RUNALL)
|
||||
|
||||
int defaultGPUNode = m_NodeInfo.HsaDefaultGPUNode();
|
||||
@@ -80,7 +95,53 @@ TEST_F(KFDQMTest, CreateCpQueue) {
|
||||
TEST_END
|
||||
}
|
||||
|
||||
TEST_F(KFDQMTest, CreateSdmaQueue) {
|
||||
TEST_F(KFDQMTest, MultipleCpQueues) {
|
||||
TEST_START(TESTPROFILE_RUNALL)
|
||||
|
||||
int defaultGPUNode = m_NodeInfo.HsaDefaultGPUNode();
|
||||
ASSERT_GE(defaultGPUNode, 0) << "failed to get default GPU Node";
|
||||
|
||||
static const unsigned int MAX_CP_QUEUES = 16;
|
||||
|
||||
HsaMemoryBuffer destBuf(PAGE_SIZE, defaultGPUNode, false);
|
||||
|
||||
destBuf.Fill(0xFF);
|
||||
|
||||
PM4Queue queues[MAX_CP_QUEUES];
|
||||
|
||||
for (unsigned int qidx = 0; qidx < MAX_CP_QUEUES; ++qidx)
|
||||
ASSERT_SUCCESS(queues[qidx].Create(defaultGPUNode)) << " QueueId=" << qidx;
|
||||
|
||||
for (unsigned int qidx = 0; qidx < MAX_CP_QUEUES; ++qidx) {
|
||||
queues[qidx].PlaceAndSubmitPacket(PM4WriteDataPacket(destBuf.As<unsigned int*>()+qidx*2, qidx, qidx));
|
||||
|
||||
queues[qidx].Wait4PacketConsumption();
|
||||
|
||||
WaitOnValue(destBuf.As<unsigned int*>()+qidx*2, qidx);
|
||||
}
|
||||
|
||||
for (unsigned int qidx = 0; qidx < MAX_CP_QUEUES; ++qidx)
|
||||
EXPECT_SUCCESS(queues[qidx].Destroy());
|
||||
|
||||
TEST_END
|
||||
}
|
||||
|
||||
TEST_F(KFDQMTest, CreateDestroySdmaQueue) {
|
||||
TEST_START(TESTPROFILE_RUNALL)
|
||||
|
||||
int defaultGPUNode = m_NodeInfo.HsaDefaultGPUNode();
|
||||
ASSERT_GE(defaultGPUNode, 0) << "failed to get default GPU Node";
|
||||
|
||||
SDMAQueue queue;
|
||||
|
||||
ASSERT_SUCCESS(queue.Create(defaultGPUNode));
|
||||
|
||||
EXPECT_SUCCESS(queue.Destroy());
|
||||
|
||||
TEST_END
|
||||
}
|
||||
|
||||
TEST_F(KFDQMTest, SubmitPacketSdmaQueue) {
|
||||
TEST_START(TESTPROFILE_RUNALL)
|
||||
|
||||
int defaultGPUNode = m_NodeInfo.HsaDefaultGPUNode();
|
||||
@@ -105,7 +166,7 @@ TEST_F(KFDQMTest, CreateSdmaQueue) {
|
||||
TEST_END
|
||||
}
|
||||
|
||||
TEST_F(KFDQMTest, CreateMultipleSdmaQueues) {
|
||||
TEST_F(KFDQMTest, MultipleSdmaQueues) {
|
||||
TEST_START(TESTPROFILE_RUNALL)
|
||||
|
||||
int defaultGPUNode = m_NodeInfo.HsaDefaultGPUNode();
|
||||
@@ -208,37 +269,6 @@ TEST_F(KFDQMTest, SdmaConcurrentCopies) {
|
||||
TEST_END
|
||||
}
|
||||
|
||||
TEST_F(KFDQMTest, CreateMultipleCpQueues) {
|
||||
TEST_START(TESTPROFILE_RUNALL)
|
||||
|
||||
int defaultGPUNode = m_NodeInfo.HsaDefaultGPUNode();
|
||||
ASSERT_GE(defaultGPUNode, 0) << "failed to get default GPU Node";
|
||||
|
||||
static const unsigned int MAX_CP_QUEUES = 16;
|
||||
|
||||
HsaMemoryBuffer destBuf(PAGE_SIZE, defaultGPUNode, false);
|
||||
|
||||
destBuf.Fill(0xFF);
|
||||
|
||||
PM4Queue queues[MAX_CP_QUEUES];
|
||||
|
||||
for (unsigned int qidx = 0; qidx < MAX_CP_QUEUES; ++qidx)
|
||||
ASSERT_SUCCESS(queues[qidx].Create(defaultGPUNode)) << " QueueId=" << qidx;
|
||||
|
||||
for (unsigned int qidx = 0; qidx < MAX_CP_QUEUES; ++qidx) {
|
||||
queues[qidx].PlaceAndSubmitPacket(PM4WriteDataPacket(destBuf.As<unsigned int*>()+qidx*2, qidx, qidx));
|
||||
|
||||
queues[qidx].Wait4PacketConsumption();
|
||||
|
||||
WaitOnValue(destBuf.As<unsigned int*>()+qidx*2, qidx);
|
||||
}
|
||||
|
||||
for (unsigned int qidx = 0; qidx < MAX_CP_QUEUES; ++qidx)
|
||||
EXPECT_SUCCESS(queues[qidx].Destroy());
|
||||
|
||||
TEST_END
|
||||
}
|
||||
|
||||
TEST_F(KFDQMTest, DisableCpQueueByUpdateWithNullAddress) {
|
||||
TEST_START(TESTPROFILE_RUNALL)
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user