Adding MemoryInfo to Drm
- call queryMemoryInfo on Drm::create() Change-Id: Ib0532894f271bd4ab3dcbb281d0bddf2a01d4afe Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
parent
a7d66b0365
commit
432591a88a
|
@ -188,6 +188,8 @@ Drm *Drm::create(int32_t deviceOrdinal) {
|
|||
printDebugString(DebugManager.flags.PrintDebugMessages.get(), stderr, "%s", "WARNING: Failed to request OCL Turbo Boost\n");
|
||||
}
|
||||
|
||||
drmObject->queryMemoryInfo();
|
||||
|
||||
drms[deviceOrdinal % drms.size()] = drmObject.release();
|
||||
return drms[deviceOrdinal % drms.size()];
|
||||
}
|
||||
|
|
|
@ -32,9 +32,11 @@ set(RUNTIME_SRCS_OS_INTERFACE_LINUX
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/drm_neo.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/drm_neo.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/drm_neo_create.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}/drm_neo_memory_info.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/drm_null_device.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/hw_info_config.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/linux_inc.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/memory_info.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/os_context_linux.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/os_context_linux.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/os_inc.h
|
||||
|
|
|
@ -6,12 +6,14 @@
|
|||
*/
|
||||
|
||||
#pragma once
|
||||
#include "runtime/os_interface/linux/memory_info.h"
|
||||
#include "runtime/utilities/api_intercept.h"
|
||||
|
||||
#include "igfxfmid.h"
|
||||
|
||||
#include <cerrno>
|
||||
#include <fcntl.h>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <sys/ioctl.h>
|
||||
#include <unistd.h>
|
||||
|
@ -68,6 +70,7 @@ class Drm {
|
|||
MOCKABLE_VIRTUAL int getErrno();
|
||||
void setSimplifiedMocsTableUsage(bool value);
|
||||
bool getSimplifiedMocsTableUsage() const;
|
||||
void queryMemoryInfo();
|
||||
|
||||
protected:
|
||||
bool useSimplifiedMocsTable = false;
|
||||
|
@ -77,6 +80,7 @@ class Drm {
|
|||
int revisionId;
|
||||
GTTYPE eGtType;
|
||||
Drm(int fd) : fd(fd), deviceId(0), revisionId(0), eGtType(GTTYPE_UNDEFINED) {}
|
||||
std::unique_ptr<MemoryInfo> memoryInfo;
|
||||
|
||||
static bool isi915Version(int fd);
|
||||
static int getDeviceFd(const int devType);
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
* Copyright (C) 2019 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "drm_neo.h"
|
||||
|
||||
namespace OCLRT {
|
||||
|
||||
void Drm::queryMemoryInfo() {
|
||||
}
|
||||
|
||||
} // namespace OCLRT
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* Copyright (C) 2019 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace OCLRT {
|
||||
|
||||
struct MemoryInfo {
|
||||
MemoryInfo() = default;
|
||||
virtual ~MemoryInfo() = 0;
|
||||
};
|
||||
|
||||
inline MemoryInfo::~MemoryInfo(){};
|
||||
|
||||
} // namespace OCLRT
|
|
@ -19,6 +19,7 @@ set(IGDRCL_SRCS_tests_os_interface_linux
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/drm_command_stream_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/drm_gem_close_worker_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}/drm_mapper_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}/drm_memory_info_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/drm_memory_manager_tests.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/drm_memory_manager_tests.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}/drm_memory_manager_allocate_in_device_pool_tests.cpp
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
* Copyright (C) 2019 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "runtime/os_interface/linux/memory_info.h"
|
||||
#include "unit_tests/os_interface/linux/drm_mock.h"
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
using namespace OCLRT;
|
||||
|
||||
TEST(DrmTest, whenQueryingMemoryInfoThenMemoryInfoIsNotCreatedAndNoIoctlIsCalled) {
|
||||
std::unique_ptr<DrmMock> drm = std::make_unique<DrmMock>();
|
||||
EXPECT_NE(nullptr, drm);
|
||||
|
||||
drm->queryMemoryInfo();
|
||||
|
||||
EXPECT_EQ(nullptr, drm->memoryInfo.get());
|
||||
EXPECT_EQ(0u, drm->ioctlCallsCount);
|
||||
}
|
||||
|
||||
TEST(MemoryInfo, givenMemoryInfoImplementationWhenDestructingThenDestructorIsCalled) {
|
||||
struct MemoryInfoImpl : public OCLRT::MemoryInfo {
|
||||
MemoryInfoImpl() {}
|
||||
~MemoryInfoImpl() override{};
|
||||
};
|
||||
|
||||
MemoryInfoImpl memoryInfoImpl;
|
||||
}
|
|
@ -27,6 +27,7 @@ static const int mockFd = 33;
|
|||
// Mock DRM class that responds to DRM_IOCTL_I915_GETPARAMs
|
||||
class DrmMock : public Drm {
|
||||
public:
|
||||
using Drm::memoryInfo;
|
||||
using Drm::preemptionSupported;
|
||||
|
||||
DrmMock() : Drm(mockFd) {
|
||||
|
@ -39,6 +40,8 @@ class DrmMock : public Drm {
|
|||
}
|
||||
}
|
||||
int ioctl(unsigned long request, void *arg) override {
|
||||
ioctlCallsCount++;
|
||||
|
||||
if ((request == DRM_IOCTL_I915_GETPARAM) && (arg != nullptr)) {
|
||||
drm_i915_getparam_t *gp = (drm_i915_getparam_t *)arg;
|
||||
if (false
|
||||
|
@ -243,6 +246,7 @@ class DrmMock : public Drm {
|
|||
int StoredExecSoftPin = 0;
|
||||
uint32_t StoredCtxId = 1;
|
||||
uint32_t receivedDestroyContextId = 0;
|
||||
uint32_t ioctlCallsCount = 0;
|
||||
|
||||
uint32_t receivedContextParamRequestCount = 0;
|
||||
drm_i915_gem_context_param receivedContextParamRequest = {};
|
||||
|
|
Loading…
Reference in New Issue