Change-Id: I8945a078ee8ae491245da6091e64b118584a48ab


[ROCm/ROCR-Runtime commit: 75428364a7]
Этот коммит содержится в:
Ramesh Errabolu
2022-09-12 16:27:14 -05:00
коммит произвёл Felix Kuehling
родитель a89bcd0518
Коммит b931a65960
4 изменённых файлов: 52 добавлений и 0 удалений
+30
Просмотреть файл
@@ -39,6 +39,9 @@
#include "SDMAPacket.hpp"
#include "linux/kfd_ioctl.h"
/* Captures user specified time (seconds) to sleep */
extern unsigned int g_SleepTime;
void KFDMemoryTest::SetUp() {
ROUTINE_START
@@ -93,6 +96,15 @@ TEST_F(KFDMemoryTest, MMapLarge) {
int i = 0;
/* Allocate 1024GB, aka 1TB*/
for (; i < nObjects; i++) {
/* Code snippet to allow CRIU checkpointing */
if (i == (1 << 6)) {
if (g_SleepTime > 0) {
LOG() << "Pause for: " << g_SleepTime << " seconds" << std::endl;
sleep(g_SleepTime);
}
}
if (hsaKmtRegisterMemory(addr + i, s - i))
break;
if (hsaKmtMapMemoryToGPUNodes(addr + i, s - i,
@@ -633,6 +645,7 @@ void KFDMemoryTest::BinarySearchLargestBuffer(int allocNode, const HsaMemFlags &
HSAuint64 highMB, int nodeToMap,
HSAuint64 *lastSizeMB) {
int ret;
int iter = 0;
HsaMemMapFlags mapFlags = {0};
HSAuint64 granularityMB = highMB > 512 ? 128 : 16;
@@ -656,6 +669,15 @@ void KFDMemoryTest::BinarySearchLargestBuffer(int allocNode, const HsaMemFlags &
continue;
}
/* Code snippet to allow CRIU checkpointing */
iter++;
if (iter == 3) {
if (g_SleepTime > 0) {
LOG() << "Pause for: " << g_SleepTime << " seconds" << std::endl;
sleep(g_SleepTime);
}
}
ret = hsaKmtMapMemoryToGPUNodes(pDb, size, NULL,
mapFlags, 1, reinterpret_cast<HSAuint32 *>(&nodeToMap));
if (ret) {
@@ -908,6 +930,14 @@ TEST_F(KFDMemoryTest, MMBench) {
HSAuint64 allocTime, map1Time, unmap1Time, mapAllTime, unmapAllTime, freeTime;
HSAuint32 allocNode;
/* Code snippet to allow CRIU checkpointing */
if (testIndex == 3) {
if (g_SleepTime > 0) {
LOG() << "Pause for: " << g_SleepTime << " seconds" << std::endl;
sleep(g_SleepTime);
}
}
if ((testIndex % nSizes) == 0)
LOG() << "--------------------------------------------------------------------------" << std::endl;
+9
Просмотреть файл
@@ -53,6 +53,7 @@ unsigned int g_TestTimeOut;
int g_TestNodeId;
int g_TestDstNodeId;
bool g_IsChildProcess;
unsigned int g_SleepTime;
unsigned int g_TestGPUFamilyId;
class KFDBaseComponentTest *g_baseTest;
@@ -80,12 +81,20 @@ GTEST_API_ int main(int argc, char **argv) {
if ( args.TimeOut > 0 )
g_TestTimeOut = args.TimeOut;
g_SleepTime = 0x00;
if (args.SleepTime > 0) {
g_SleepTime = args.SleepTime;
}
// If --node is not specified, then args.NodeId == -1
g_TestNodeId = args.NodeId;
g_TestDstNodeId = args.DstNodeId;
LOG() << "Profile: " << (TESTPROFILE)g_TestRunProfile << std::endl;
LOG() << "HW capabilities: 0x" << std::hex << g_TestENVCaps << std::endl;
if (g_SleepTime > 0) {
LOG() << "Sleep time in seconds as specified by user: " << std::dec << g_SleepTime << std::endl;
}
return RUN_ALL_TESTS();
}
+11
Просмотреть файл
@@ -109,6 +109,7 @@ void ComandLineArgumentsUsage() {
printf("\t--child arg\t - Child Process\n");
printf("\t--timeout arg\t - Time Out\n");
printf("\t--dst_node\t - For testing multiple nodes");
printf("\t--sleep_time\t - For testing CRIU, etc");
}
bool GetCommandLineArguments(int argc, char **argv, CommandLineArguments& rArgs) {
@@ -123,6 +124,7 @@ bool GetCommandLineArguments(int argc, char **argv, CommandLineArguments& rArgs)
{ "timeout", required_argument, 0, 0},
{ "node", required_argument, 0, 0 },
{ "dst_node", required_argument, 0, 0 },
{ "sleep_time", required_argument, 0, 0 },
{ 0, 0, 0, 0 }
};
@@ -132,6 +134,7 @@ bool GetCommandLineArguments(int argc, char **argv, CommandLineArguments& rArgs)
rArgs.TimeOut = 0;
rArgs.NodeId = -1;
rArgs.DstNodeId = -1;
rArgs.SleepTime = 0;
while (true) {
int c = getopt_long(argc, argv, "", long_options, &option_index);
@@ -200,6 +203,14 @@ bool GetCommandLineArguments(int argc, char **argv, CommandLineArguments& rArgs)
rArgs.DstNodeId = dstNodeId;
}
break;
/* Sleep time - used in testing CRIU */
case 6:
{
int sleepTime = atoi(optarg);
if (sleepTime >= 0)
rArgs.SleepTime = sleepTime;
}
break;
}
}
+2
Просмотреть файл
@@ -64,6 +64,8 @@ struct CommandLineArguments {
unsigned int TimeOut;
int NodeId;
int DstNodeId;
/* Time in units of seconds */
unsigned int SleepTime;
};
// It is either MEM_NONE or the bitwise OR of one or more of the following flags