Skip to content

Commit 25385f9

Browse files
Add memory allocate in device pool tests for DG1 platform
Related-To: NEO-4744 Change-Id: Ia4b557e8aec40033ce05ca313c0a9fe545c31388 Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
1 parent ca39301 commit 25385f9

File tree

6 files changed

+1069
-1
lines changed

6 files changed

+1069
-1
lines changed

opencl/test/unit_test/os_interface/linux/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ set(IGDRCL_SRCS_tests_os_interface_linux
2121
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}/drm_mapper_tests.cpp
2222
${CMAKE_CURRENT_SOURCE_DIR}/drm_memory_manager_tests.cpp
2323
${CMAKE_CURRENT_SOURCE_DIR}/drm_memory_manager_tests.h
24-
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}/drm_memory_manager_allocate_in_device_pool_tests.cpp
2524
${CMAKE_CURRENT_SOURCE_DIR}/drm_neo_create.cpp
2625
${CMAKE_CURRENT_SOURCE_DIR}/drm_os_memory_tests.cpp
2726
${CMAKE_CURRENT_SOURCE_DIR}/drm_residency_handler_tests.cpp
@@ -41,10 +40,12 @@ set(IGDRCL_SRCS_tests_os_interface_linux
4140
if(SUPPORT_DG1 AND "${BRANCH_TYPE}" STREQUAL "")
4241
list(APPEND IGDRCL_SRCS_tests_os_interface_linux
4342
${CMAKE_CURRENT_SOURCE_DIR}/drm_memory_info_tests_dg1.cpp
43+
${CMAKE_CURRENT_SOURCE_DIR}/drm_memory_manager_allocate_in_device_pool_tests_dg1.cpp
4444
)
4545
else()
4646
list(APPEND IGDRCL_SRCS_tests_os_interface_linux
4747
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}/drm_memory_info_tests.cpp
48+
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}/drm_memory_manager_allocate_in_device_pool_tests.cpp
4849
)
4950
endif()
5051
if(UNIX)

opencl/test/unit_test/os_interface/linux/device_command_stream_fixture.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ class DrmMockTime : public DrmMockSuccess {
7272

7373
class DrmMockCustom : public Drm {
7474
public:
75+
using Drm::memoryInfo;
76+
7577
struct IoctlResExt {
7678
int32_t no;
7779
int32_t res;
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
/*
2+
* Copyright (C) 2020 Intel Corporation
3+
*
4+
* SPDX-License-Identifier: MIT
5+
*
6+
*/
7+
8+
#pragma once
9+
#include "opencl/test/unit_test/os_interface/linux/device_command_stream_fixture.h"
10+
11+
class DrmMockCustomDg1 : public DrmMockCustom {
12+
public:
13+
using Drm::memoryInfo;
14+
15+
class IoctlsDg1 {
16+
public:
17+
void reset() {
18+
gemCreateExt = 0;
19+
gemMmapOffset = 0;
20+
}
21+
std::atomic<int32_t> gemCreateExt;
22+
std::atomic<int32_t> gemMmapOffset;
23+
};
24+
25+
IoctlsDg1 ioctlDg1_cnt;
26+
IoctlsDg1 ioctlDg1_expected;
27+
28+
void testIoctlsDg1() {
29+
#define NEO_IOCTL_EXPECT_EQ(PARAM) \
30+
if (this->ioctlDg1_expected.PARAM >= 0) { \
31+
EXPECT_EQ(this->ioctlDg1_expected.PARAM, this->ioctlDg1_cnt.PARAM); \
32+
}
33+
NEO_IOCTL_EXPECT_EQ(gemMmapOffset);
34+
#undef NEO_IOCTL_EXPECT_EQ
35+
}
36+
37+
//DRM_IOCTL_I915_GEM_CREATE_EXT
38+
__u64 createExtSize = 0;
39+
__u32 createExtHandle = 0;
40+
__u64 createExtExtensions = 0;
41+
42+
//DRM_IOCTL_I915_GEM_MMAP_OFFSET
43+
__u32 mmapOffsetHandle = 0;
44+
__u32 mmapOffsetPad = 0;
45+
__u64 mmapOffsetOffset = 0;
46+
__u64 mmapOffsetFlags = 0;
47+
48+
int ioctlExtra(unsigned long request, void *arg) override {
49+
switch (request) {
50+
case DRM_IOCTL_I915_GEM_CREATE_EXT: {
51+
auto createExtParams = reinterpret_cast<drm_i915_gem_create_ext *>(arg);
52+
createExtSize = createExtParams->size;
53+
createExtHandle = createExtParams->handle;
54+
createExtExtensions = createExtParams->extensions;
55+
ioctlDg1_cnt.gemCreateExt++;
56+
} break;
57+
case DRM_IOCTL_I915_GEM_MMAP_OFFSET: {
58+
auto mmapOffsetParams = reinterpret_cast<drm_i915_gem_mmap_offset *>(arg);
59+
mmapOffsetHandle = mmapOffsetParams->handle;
60+
mmapOffsetPad = mmapOffsetParams->pad;
61+
mmapOffsetOffset = mmapOffsetParams->offset;
62+
mmapOffsetFlags = mmapOffsetParams->flags;
63+
ioctlDg1_cnt.gemMmapOffset++;
64+
} break;
65+
default: {
66+
std::cout << std::hex << DRM_IOCTL_I915_GEM_WAIT << std::endl;
67+
std::cout << "unexpected IOCTL: " << std::hex << request << std::endl;
68+
UNRECOVERABLE_IF(true);
69+
} break;
70+
}
71+
return 0;
72+
}
73+
74+
DrmMockCustomDg1() : DrmMockCustom() {
75+
ioctlDg1_cnt.reset();
76+
ioctlDg1_expected.reset();
77+
}
78+
};

0 commit comments

Comments
 (0)