From 5d15953efb81b99fcf811deb0782d4ae6fbbe7e5 Mon Sep 17 00:00:00 2001 From: Oak Zeng Date: Mon, 12 Nov 2018 16:14:14 -0600 Subject: [PATCH] Add test to allocate SDMA queue on specific engine Change-Id: I5b5140e4119fc01db250d63cca7389cf80ec0d16 Signed-off-by: Oak Zeng [ROCm/ROCR-Runtime commit: af5b320c478e60b134636bf8c7bfcf932451329f] --- .../tests/kfdtest/src/KFDQMTest.cpp | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/projects/rocr-runtime/tests/kfdtest/src/KFDQMTest.cpp b/projects/rocr-runtime/tests/kfdtest/src/KFDQMTest.cpp index 53471dedd9..c6922bc014 100644 --- a/projects/rocr-runtime/tests/kfdtest/src/KFDQMTest.cpp +++ b/projects/rocr-runtime/tests/kfdtest/src/KFDQMTest.cpp @@ -105,6 +105,35 @@ TEST_F(KFDQMTest, CreateSdmaQueue) { TEST_END } +TEST_F(KFDQMTest, CreateSdmaQueueOnEngine) { + TEST_START(TESTPROFILE_RUNALL) + + int defaultGPUNode = m_NodeInfo.HsaDefaultGPUNode(); + ASSERT_GE(defaultGPUNode, 0) << "failed to get default GPU Node"; + unsigned int numSdmaEngine; + + if (m_FamilyId == FAMILY_RV) + numSdmaEngine = 1; + else + numSdmaEngine = 2; + + HsaMemoryBuffer destBuf(PAGE_SIZE, defaultGPUNode, false); + + SDMAQueue queue; + + //How to get number of sdma engine? + for (int i = 0; i < numSdmaEngine; i++) { + destBuf.Fill(0xFF); + ASSERT_SUCCESS(queue.Create(defaultGPUNode, BaseQueue::DEFAULT_QUEUE_SIZE, NULL, i)); + queue.PlaceAndSubmitPacket(SDMAWriteDataPacket(destBuf.As(), 0x02020202)); + queue.Wait4PacketConsumption(); + ASSERT_TRUE(WaitOnValue(destBuf.As(), 0x02020202)); + ASSERT_SUCCESS(queue.Destroy()); + } + + TEST_END +} + TEST_F(KFDQMTest, CreateMultipleSdmaQueues) { TEST_START(TESTPROFILE_RUNALL)