kfdtest: Expand KFDQMTest.MultipleCpQueues to cover all CP queues
Because of that, rename the test to AllCpQueues. Change-Id: I57105f863db2558e850c703d151ffebcce2c7a17 Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>
This commit is contained in:
@@ -13,7 +13,7 @@ FILTER[core_sws]=\
|
||||
"KFDQMTest.CreateDestroyCpQueue:"\
|
||||
"KFDQMTest.SubmitNopCpQueue:"\
|
||||
"KFDQMTest.SubmitPacketCpQueue:"\
|
||||
"KFDQMTest.MultipleCpQueues:"\
|
||||
"KFDQMTest.AllCpQueues:"\
|
||||
"KFDQMTest.CreateDestroySdmaQueue:"\
|
||||
"KFDQMTest.SubmitNopSdmaQueue:"\
|
||||
"KFDQMTest.SubmitPacketSdmaQueue:"\
|
||||
|
||||
@@ -63,8 +63,8 @@ void KFDBaseComponentTest::SetUp() {
|
||||
|
||||
m_FamilyId = FamilyIdFromNode(nodeProperties);
|
||||
|
||||
GetSdmaInfo(nodeProperties, &m_numSdmaEngines, &m_numSdmaXgmiEngines,
|
||||
&m_numSdmaQueuesPerEngine);
|
||||
GetHwQueueInfo(nodeProperties, &m_numCpQueues, &m_numSdmaEngines,
|
||||
&m_numSdmaXgmiEngines, &m_numSdmaQueuesPerEngine);
|
||||
|
||||
g_baseTest = this;
|
||||
|
||||
|
||||
@@ -62,6 +62,7 @@ class KFDBaseComponentTest : public testing::Test {
|
||||
HsaVersionInfo m_VersionInfo;
|
||||
HsaSystemProperties m_SystemProperties;
|
||||
unsigned int m_FamilyId;
|
||||
unsigned int m_numCpQueues;
|
||||
unsigned int m_numSdmaEngines;
|
||||
unsigned int m_numSdmaXgmiEngines;
|
||||
unsigned int m_numSdmaQueuesPerEngine;
|
||||
|
||||
@@ -115,32 +115,30 @@ TEST_F(KFDQMTest, SubmitPacketCpQueue) {
|
||||
TEST_END
|
||||
}
|
||||
|
||||
TEST_F(KFDQMTest, MultipleCpQueues) {
|
||||
TEST_F(KFDQMTest, AllCpQueues) {
|
||||
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];
|
||||
std::vector<PM4Queue> queues(m_numCpQueues);
|
||||
|
||||
for (unsigned int qidx = 0; qidx < MAX_CP_QUEUES; ++qidx)
|
||||
for (unsigned int qidx = 0; qidx < m_numCpQueues; ++qidx)
|
||||
ASSERT_SUCCESS(queues[qidx].Create(defaultGPUNode)) << " QueueId=" << qidx;
|
||||
|
||||
for (unsigned int qidx = 0; qidx < MAX_CP_QUEUES; ++qidx) {
|
||||
for (unsigned int qidx = 0; qidx < m_numCpQueues; ++qidx) {
|
||||
queues[qidx].PlaceAndSubmitPacket(PM4WriteDataPacket(destBuf.As<unsigned int*>()+qidx*2, qidx, qidx));
|
||||
|
||||
queues[qidx].Wait4PacketConsumption();
|
||||
|
||||
WaitOnValue(destBuf.As<unsigned int*>()+qidx*2, qidx);
|
||||
EXPECT_TRUE(WaitOnValue(destBuf.As<unsigned int*>()+qidx*2, qidx));
|
||||
}
|
||||
|
||||
for (unsigned int qidx = 0; qidx < MAX_CP_QUEUES; ++qidx)
|
||||
for (unsigned int qidx = 0; qidx < m_numCpQueues; ++qidx)
|
||||
EXPECT_SUCCESS(queues[qidx].Destroy());
|
||||
|
||||
TEST_END
|
||||
|
||||
@@ -140,17 +140,19 @@ unsigned int FamilyIdFromNode(const HsaNodeProperties *props) {
|
||||
return familyId;
|
||||
}
|
||||
|
||||
void GetSdmaInfo(const HsaNodeProperties *props,
|
||||
void GetHwQueueInfo(const HsaNodeProperties *props,
|
||||
unsigned int *p_num_cp_queues,
|
||||
unsigned int *p_num_sdma_engines,
|
||||
unsigned int *p_num_sdma_xgmi_engines,
|
||||
unsigned int *p_num_sdma_queues_per_engine) {
|
||||
int num_cp_queues = 24;
|
||||
int num_sdma_queues_per_engine = 2;
|
||||
|
||||
if (props->EngineId.ui32.Major == 9) {
|
||||
if (props->EngineId.ui32.Stepping == 6) // VEGA20
|
||||
num_sdma_queues_per_engine = 8;
|
||||
} else if (props->EngineId.ui32.Major == 10) { //NAVIi
|
||||
num_sdma_queues_per_engine = 8;
|
||||
} else if (props->EngineId.ui32.Major == 10) { // NAVI
|
||||
num_sdma_queues_per_engine = 8;
|
||||
}
|
||||
|
||||
if (p_num_sdma_engines)
|
||||
@@ -161,6 +163,9 @@ void GetSdmaInfo(const HsaNodeProperties *props,
|
||||
|
||||
if (p_num_sdma_queues_per_engine)
|
||||
*p_num_sdma_queues_per_engine = num_sdma_queues_per_engine;
|
||||
|
||||
if (p_num_cp_queues)
|
||||
*p_num_cp_queues = num_cp_queues;
|
||||
}
|
||||
|
||||
bool isTonga(const HsaNodeProperties *props) {
|
||||
|
||||
@@ -51,7 +51,8 @@ bool is_dgpu();
|
||||
bool isTonga(const HsaNodeProperties *props);
|
||||
unsigned int FamilyIdFromNode(const HsaNodeProperties *props);
|
||||
|
||||
void GetSdmaInfo(const HsaNodeProperties *props,
|
||||
void GetHwQueueInfo(const HsaNodeProperties *props,
|
||||
unsigned int *p_num_cp_queues,
|
||||
unsigned int *p_num_sdma_engines,
|
||||
unsigned int *p_num_sdma_xgmi_engines,
|
||||
unsigned int *p_num_sdma_queues_per_engine);
|
||||
|
||||
Reference in New Issue
Block a user