Skip to content

Commit 49f450e

Browse files
Correct enqueueSVMMigrateMem function
Change-Id: Ice49ac7434038ec3667084414fa23a4367242e9c Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
1 parent 739c1c6 commit 49f450e

File tree

6 files changed

+35
-12
lines changed

6 files changed

+35
-12
lines changed

opencl/source/command_queue/enqueue_svm.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -544,12 +544,12 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMigrateMem(cl_uint numSvmPointers,
544544
NullSurface s;
545545
Surface *surfaces[] = {&s};
546546

547-
enqueueHandler<CL_COMMAND_MIGRATE_MEM_OBJECTS>(surfaces,
548-
false,
549-
MultiDispatchInfo(),
550-
numEventsInWaitList,
551-
eventWaitList,
552-
event);
547+
enqueueHandler<CL_COMMAND_SVM_MIGRATE_MEM>(surfaces,
548+
false,
549+
MultiDispatchInfo(),
550+
numEventsInWaitList,
551+
eventWaitList,
552+
event);
553553

554554
return CL_SUCCESS;
555555
}

opencl/source/helpers/cl_helper.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ inline const std::string cmdTypetoString(cl_command_type cmd) {
7373
return "CL_COMMAND_SVM_MAP";
7474
case CL_COMMAND_SVM_UNMAP:
7575
return "CL_COMMAND_SVM_UNMAP";
76+
case CL_COMMAND_SVM_MIGRATE_MEM:
77+
return "CL_COMMAND_SVM_MIGRATE_MEM";
7678
case CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR:
7779
return "CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR";
7880
default: {

opencl/source/helpers/queue_helpers.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,12 @@ void getIntelQueueInfo(CommandQueue *queue, cl_command_queue_info paramName, Get
2323
retVal = CL_INVALID_VALUE;
2424
}
2525
bool isCommandWithoutKernel(uint32_t commandType) {
26-
return ((commandType == CL_COMMAND_BARRIER) || (commandType == CL_COMMAND_MARKER) ||
26+
return ((commandType == CL_COMMAND_BARRIER) ||
27+
(commandType == CL_COMMAND_MARKER) ||
2728
(commandType == CL_COMMAND_MIGRATE_MEM_OBJECTS) ||
29+
(commandType == CL_COMMAND_SVM_FREE) ||
2830
(commandType == CL_COMMAND_SVM_MAP) ||
29-
(commandType == CL_COMMAND_SVM_UNMAP) ||
30-
(commandType == CL_COMMAND_SVM_FREE));
31+
(commandType == CL_COMMAND_SVM_MIGRATE_MEM) ||
32+
(commandType == CL_COMMAND_SVM_UNMAP));
3133
}
3234
} // namespace NEO

opencl/test/unit_test/api/cl_enqueue_marker_tests.inl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ static unsigned int commandWithoutKernelTypes[] = {
4545
CL_COMMAND_MARKER,
4646
CL_COMMAND_MIGRATE_MEM_OBJECTS,
4747
CL_COMMAND_SVM_MAP,
48+
CL_COMMAND_SVM_MIGRATE_MEM,
4849
CL_COMMAND_SVM_UNMAP,
4950
CL_COMMAND_SVM_FREE};
5051

opencl/test/unit_test/command_queue/enqueue_svm_tests.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -866,6 +866,23 @@ TEST_F(EnqueueSvmTest, GivenValidParamsWhenMigratingMemoryThenSuccessIsReturned)
866866
EXPECT_EQ(CL_SUCCESS, retVal);
867867
}
868868

869+
HWTEST_F(EnqueueSvmTest, WhenMigratingMemoryThenSvmMigrateMemCommandTypeIsUsed) {
870+
MockCommandQueueHw<FamilyType> commandQueue{context, pClDevice, nullptr};
871+
const void *svmPtrs[] = {ptrSVM};
872+
retVal = commandQueue.enqueueSVMMigrateMem(
873+
1, // cl_uint num_svm_pointers
874+
svmPtrs, // const void **svm_pointers
875+
nullptr, // const size_t *sizes
876+
0, // const cl_mem_migration_flags flags
877+
0, // cl_uint num_events_in_wait_list
878+
nullptr, // cl_event *event_wait_list
879+
nullptr // cL_event *event
880+
);
881+
EXPECT_EQ(CL_SUCCESS, retVal);
882+
uint32_t expectedCommandType = CL_COMMAND_SVM_MIGRATE_MEM;
883+
EXPECT_EQ(expectedCommandType, commandQueue.lastCommandType);
884+
}
885+
869886
TEST(CreateSvmAllocTests, givenVariousSvmAllocationPropertiesWhenAllocatingSvmThenSvmIsCorrectlyAllocated) {
870887
if (!defaultHwInfo->capabilityTable.ftrSvm) {
871888
return;

opencl/test/unit_test/helpers/cl_helper_tests.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#include <array>
1313

1414
TEST(ClHelper, whenCallGetStringWithCmdTypeFunctionThenGetProperCmdTypeAsString) {
15-
std::array<std::string, 30> expected = {{"CL_COMMAND_NDRANGE_KERNEL",
15+
std::array<std::string, 31> expected = {{"CL_COMMAND_NDRANGE_KERNEL",
1616
"CL_COMMAND_TASK",
1717
"CL_COMMAND_NATIVE_KERNEL",
1818
"CL_COMMAND_READ_BUFFER",
@@ -41,9 +41,10 @@ TEST(ClHelper, whenCallGetStringWithCmdTypeFunctionThenGetProperCmdTypeAsString)
4141
"CL_COMMAND_SVM_MEMCPY",
4242
"CL_COMMAND_SVM_MEMFILL",
4343
"CL_COMMAND_SVM_MAP",
44-
"CL_COMMAND_SVM_UNMAP"}};
44+
"CL_COMMAND_SVM_UNMAP",
45+
"CL_COMMAND_SVM_MIGRATE_MEM"}};
4546

46-
for (int i = CL_COMMAND_NDRANGE_KERNEL; i <= CL_COMMAND_SVM_UNMAP; i++) {
47+
for (int i = CL_COMMAND_NDRANGE_KERNEL; i <= CL_COMMAND_SVM_MIGRATE_MEM; i++) {
4748
EXPECT_STREQ(expected[i - CL_COMMAND_NDRANGE_KERNEL].c_str(), NEO::cmdTypetoString(i).c_str());
4849
}
4950

0 commit comments

Comments
 (0)