Reorganize new ioctl and ioctl param logging code
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
parent
7c8fcb30ed
commit
8156d5c16e
|
@ -267,3 +267,76 @@ void DrmMockEngine::handleQueryItem(drm_i915_query_item *queryItem) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
std::map<unsigned long, const char *> ioctlCodeStringMap = {
|
||||
{DRM_IOCTL_I915_INIT, "DRM_IOCTL_I915_INIT"},
|
||||
{DRM_IOCTL_I915_FLUSH, "DRM_IOCTL_I915_FLUSH"},
|
||||
{DRM_IOCTL_I915_FLIP, "DRM_IOCTL_I915_FLIP"},
|
||||
{DRM_IOCTL_GEM_CLOSE, "DRM_IOCTL_GEM_CLOSE"},
|
||||
{DRM_IOCTL_I915_BATCHBUFFER, "DRM_IOCTL_I915_BATCHBUFFER"},
|
||||
{DRM_IOCTL_I915_IRQ_EMIT, "DRM_IOCTL_I915_IRQ_EMIT"},
|
||||
{DRM_IOCTL_I915_IRQ_WAIT, "DRM_IOCTL_I915_IRQ_WAIT"},
|
||||
{DRM_IOCTL_I915_GETPARAM, "DRM_IOCTL_I915_GETPARAM"},
|
||||
{DRM_IOCTL_I915_SETPARAM, "DRM_IOCTL_I915_SETPARAM"},
|
||||
{DRM_IOCTL_I915_ALLOC, "DRM_IOCTL_I915_ALLOC"},
|
||||
{DRM_IOCTL_I915_FREE, "DRM_IOCTL_I915_FREE"},
|
||||
{DRM_IOCTL_I915_INIT_HEAP, "DRM_IOCTL_I915_INIT_HEAP"},
|
||||
{DRM_IOCTL_I915_CMDBUFFER, "DRM_IOCTL_I915_CMDBUFFER"},
|
||||
{DRM_IOCTL_I915_DESTROY_HEAP, "DRM_IOCTL_I915_DESTROY_HEAP"},
|
||||
{DRM_IOCTL_I915_SET_VBLANK_PIPE, "DRM_IOCTL_I915_SET_VBLANK_PIPE"},
|
||||
{DRM_IOCTL_I915_GET_VBLANK_PIPE, "DRM_IOCTL_I915_GET_VBLANK_PIPE"},
|
||||
{DRM_IOCTL_I915_VBLANK_SWAP, "DRM_IOCTL_I915_VBLANK_SWAP"},
|
||||
{DRM_IOCTL_I915_HWS_ADDR, "DRM_IOCTL_I915_HWS_ADDR"},
|
||||
{DRM_IOCTL_I915_GEM_INIT, "DRM_IOCTL_I915_GEM_INIT"},
|
||||
{DRM_IOCTL_I915_GEM_EXECBUFFER, "DRM_IOCTL_I915_GEM_EXECBUFFER"},
|
||||
{DRM_IOCTL_I915_GEM_EXECBUFFER2, "DRM_IOCTL_I915_GEM_EXECBUFFER2"},
|
||||
{DRM_IOCTL_I915_GEM_EXECBUFFER2_WR, "DRM_IOCTL_I915_GEM_EXECBUFFER2_WR"},
|
||||
{DRM_IOCTL_I915_GEM_PIN, "DRM_IOCTL_I915_GEM_PIN"},
|
||||
{DRM_IOCTL_I915_GEM_UNPIN, "DRM_IOCTL_I915_GEM_UNPIN"},
|
||||
{DRM_IOCTL_I915_GEM_BUSY, "DRM_IOCTL_I915_GEM_BUSY"},
|
||||
{DRM_IOCTL_I915_GEM_SET_CACHING, "DRM_IOCTL_I915_GEM_SET_CACHING"},
|
||||
{DRM_IOCTL_I915_GEM_GET_CACHING, "DRM_IOCTL_I915_GEM_GET_CACHING"},
|
||||
{DRM_IOCTL_I915_GEM_THROTTLE, "DRM_IOCTL_I915_GEM_THROTTLE"},
|
||||
{DRM_IOCTL_I915_GEM_ENTERVT, "DRM_IOCTL_I915_GEM_ENTERVT"},
|
||||
{DRM_IOCTL_I915_GEM_LEAVEVT, "DRM_IOCTL_I915_GEM_LEAVEVT"},
|
||||
{DRM_IOCTL_I915_GEM_CREATE, "DRM_IOCTL_I915_GEM_CREATE"},
|
||||
{DRM_IOCTL_I915_GEM_PREAD, "DRM_IOCTL_I915_GEM_PREAD"},
|
||||
{DRM_IOCTL_I915_GEM_PWRITE, "DRM_IOCTL_I915_GEM_PWRITE"},
|
||||
{DRM_IOCTL_I915_GEM_SET_DOMAIN, "DRM_IOCTL_I915_GEM_SET_DOMAIN"},
|
||||
{DRM_IOCTL_I915_GEM_SW_FINISH, "DRM_IOCTL_I915_GEM_SW_FINISH"},
|
||||
{DRM_IOCTL_I915_GEM_SET_TILING, "DRM_IOCTL_I915_GEM_SET_TILING"},
|
||||
{DRM_IOCTL_I915_GEM_GET_TILING, "DRM_IOCTL_I915_GEM_GET_TILING"},
|
||||
{DRM_IOCTL_I915_GEM_GET_APERTURE, "DRM_IOCTL_I915_GEM_GET_APERTURE"},
|
||||
{DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID, "DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID"},
|
||||
{DRM_IOCTL_I915_GEM_MADVISE, "DRM_IOCTL_I915_GEM_MADVISE"},
|
||||
{DRM_IOCTL_I915_OVERLAY_PUT_IMAGE, "DRM_IOCTL_I915_OVERLAY_PUT_IMAGE"},
|
||||
{DRM_IOCTL_I915_OVERLAY_ATTRS, "DRM_IOCTL_I915_OVERLAY_ATTRS"},
|
||||
{DRM_IOCTL_I915_SET_SPRITE_COLORKEY, "DRM_IOCTL_I915_SET_SPRITE_COLORKEY"},
|
||||
{DRM_IOCTL_I915_GET_SPRITE_COLORKEY, "DRM_IOCTL_I915_GET_SPRITE_COLORKEY"},
|
||||
{DRM_IOCTL_I915_GEM_WAIT, "DRM_IOCTL_I915_GEM_WAIT"},
|
||||
{DRM_IOCTL_I915_GEM_CONTEXT_CREATE, "DRM_IOCTL_I915_GEM_CONTEXT_CREATE"},
|
||||
{DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT, "DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT"},
|
||||
{DRM_IOCTL_I915_GEM_CONTEXT_DESTROY, "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY"},
|
||||
{DRM_IOCTL_I915_REG_READ, "DRM_IOCTL_I915_REG_READ"},
|
||||
{DRM_IOCTL_I915_GET_RESET_STATS, "DRM_IOCTL_I915_GET_RESET_STATS"},
|
||||
{DRM_IOCTL_I915_GEM_USERPTR, "DRM_IOCTL_I915_GEM_USERPTR"},
|
||||
{DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM, "DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM"},
|
||||
{DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM, "DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM"},
|
||||
{DRM_IOCTL_I915_PERF_OPEN, "DRM_IOCTL_I915_PERF_OPEN"},
|
||||
{DRM_IOCTL_I915_PERF_ADD_CONFIG, "DRM_IOCTL_I915_PERF_ADD_CONFIG"},
|
||||
{DRM_IOCTL_I915_PERF_REMOVE_CONFIG, "DRM_IOCTL_I915_PERF_REMOVE_CONFIG"},
|
||||
{DRM_IOCTL_I915_QUERY, "DRM_IOCTL_I915_QUERY"},
|
||||
{DRM_IOCTL_I915_GEM_MMAP, "DRM_IOCTL_I915_GEM_MMAP"},
|
||||
{static_cast<unsigned long>(101010101), "101010101"}};
|
||||
|
||||
std::map<int, const char *> ioctlParamCodeStringMap = {
|
||||
{I915_PARAM_CHIPSET_ID, "I915_PARAM_CHIPSET_ID"},
|
||||
{I915_PARAM_REVISION, "I915_PARAM_REVISION"},
|
||||
{I915_PARAM_HAS_EXEC_SOFTPIN, "I915_PARAM_HAS_EXEC_SOFTPIN"},
|
||||
{I915_PARAM_HAS_POOLED_EU, "I915_PARAM_HAS_POOLED_EU"},
|
||||
{I915_PARAM_HAS_SCHEDULER, "I915_PARAM_HAS_SCHEDULER"},
|
||||
{I915_PARAM_EU_TOTAL, "I915_PARAM_EU_TOTAL"},
|
||||
{I915_PARAM_SUBSLICE_TOTAL, "I915_PARAM_SUBSLICE_TOTAL"},
|
||||
{I915_PARAM_MIN_EU_IN_POOL, "I915_PARAM_MIN_EU_IN_POOL"},
|
||||
{I915_PARAM_CS_TIMESTAMP_FREQUENCY, "I915_PARAM_CS_TIMESTAMP_FREQUENCY"},
|
||||
{static_cast<int>(101010101), "101010101"}};
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <cstdio>
|
||||
#include <fstream>
|
||||
#include <limits.h>
|
||||
#include <map>
|
||||
|
||||
using namespace NEO;
|
||||
|
||||
|
@ -247,3 +248,6 @@ class DrmMockResources : public DrmMock {
|
|||
size_t registeredDataSize;
|
||||
uint32_t currentCookie = 2;
|
||||
};
|
||||
|
||||
extern std::map<unsigned long, const char *> ioctlCodeStringMap;
|
||||
extern std::map<int, const char *> ioctlParamCodeStringMap;
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
namespace NEO {
|
||||
|
||||
namespace IoctlHelper {
|
||||
constexpr const char *getIoctlParamString(int param) {
|
||||
std::string getIoctlParamString(int param) {
|
||||
switch (param) {
|
||||
case I915_PARAM_CHIPSET_ID:
|
||||
return "I915_PARAM_CHIPSET_ID";
|
||||
|
@ -57,10 +57,131 @@ constexpr const char *getIoctlParamString(int param) {
|
|||
case I915_PARAM_CS_TIMESTAMP_FREQUENCY:
|
||||
return "I915_PARAM_CS_TIMESTAMP_FREQUENCY";
|
||||
default:
|
||||
break;
|
||||
return getIoctlParamStringRemaining(param);
|
||||
}
|
||||
}
|
||||
|
||||
return "UNKNOWN";
|
||||
std::string getIoctlString(unsigned long request) {
|
||||
switch (request) {
|
||||
case DRM_IOCTL_I915_GEM_EXECBUFFER2:
|
||||
return "DRM_IOCTL_I915_GEM_EXECBUFFER2";
|
||||
case DRM_IOCTL_I915_GEM_WAIT:
|
||||
return "DRM_IOCTL_I915_GEM_WAIT";
|
||||
case DRM_IOCTL_GEM_CLOSE:
|
||||
return "DRM_IOCTL_GEM_CLOSE";
|
||||
case DRM_IOCTL_I915_GEM_USERPTR:
|
||||
return "DRM_IOCTL_I915_GEM_USERPTR";
|
||||
case DRM_IOCTL_I915_INIT:
|
||||
return "DRM_IOCTL_I915_INIT";
|
||||
case DRM_IOCTL_I915_FLUSH:
|
||||
return "DRM_IOCTL_I915_FLUSH";
|
||||
case DRM_IOCTL_I915_FLIP:
|
||||
return "DRM_IOCTL_I915_FLIP";
|
||||
case DRM_IOCTL_I915_BATCHBUFFER:
|
||||
return "DRM_IOCTL_I915_BATCHBUFFER";
|
||||
case DRM_IOCTL_I915_IRQ_EMIT:
|
||||
return "DRM_IOCTL_I915_IRQ_EMIT";
|
||||
case DRM_IOCTL_I915_IRQ_WAIT:
|
||||
return "DRM_IOCTL_I915_IRQ_WAIT";
|
||||
case DRM_IOCTL_I915_GETPARAM:
|
||||
return "DRM_IOCTL_I915_GETPARAM";
|
||||
case DRM_IOCTL_I915_SETPARAM:
|
||||
return "DRM_IOCTL_I915_SETPARAM";
|
||||
case DRM_IOCTL_I915_ALLOC:
|
||||
return "DRM_IOCTL_I915_ALLOC";
|
||||
case DRM_IOCTL_I915_FREE:
|
||||
return "DRM_IOCTL_I915_FREE";
|
||||
case DRM_IOCTL_I915_INIT_HEAP:
|
||||
return "DRM_IOCTL_I915_INIT_HEAP";
|
||||
case DRM_IOCTL_I915_CMDBUFFER:
|
||||
return "DRM_IOCTL_I915_CMDBUFFER";
|
||||
case DRM_IOCTL_I915_DESTROY_HEAP:
|
||||
return "DRM_IOCTL_I915_DESTROY_HEAP";
|
||||
case DRM_IOCTL_I915_SET_VBLANK_PIPE:
|
||||
return "DRM_IOCTL_I915_SET_VBLANK_PIPE";
|
||||
case DRM_IOCTL_I915_GET_VBLANK_PIPE:
|
||||
return "DRM_IOCTL_I915_GET_VBLANK_PIPE";
|
||||
case DRM_IOCTL_I915_VBLANK_SWAP:
|
||||
return "DRM_IOCTL_I915_VBLANK_SWAP";
|
||||
case DRM_IOCTL_I915_HWS_ADDR:
|
||||
return "DRM_IOCTL_I915_HWS_ADDR";
|
||||
case DRM_IOCTL_I915_GEM_INIT:
|
||||
return "DRM_IOCTL_I915_GEM_INIT";
|
||||
case DRM_IOCTL_I915_GEM_EXECBUFFER:
|
||||
return "DRM_IOCTL_I915_GEM_EXECBUFFER";
|
||||
case DRM_IOCTL_I915_GEM_EXECBUFFER2_WR:
|
||||
return "DRM_IOCTL_I915_GEM_EXECBUFFER2_WR";
|
||||
case DRM_IOCTL_I915_GEM_PIN:
|
||||
return "DRM_IOCTL_I915_GEM_PIN";
|
||||
case DRM_IOCTL_I915_GEM_UNPIN:
|
||||
return "DRM_IOCTL_I915_GEM_UNPIN";
|
||||
case DRM_IOCTL_I915_GEM_BUSY:
|
||||
return "DRM_IOCTL_I915_GEM_BUSY";
|
||||
case DRM_IOCTL_I915_GEM_SET_CACHING:
|
||||
return "DRM_IOCTL_I915_GEM_SET_CACHING";
|
||||
case DRM_IOCTL_I915_GEM_GET_CACHING:
|
||||
return "DRM_IOCTL_I915_GEM_GET_CACHING";
|
||||
case DRM_IOCTL_I915_GEM_THROTTLE:
|
||||
return "DRM_IOCTL_I915_GEM_THROTTLE";
|
||||
case DRM_IOCTL_I915_GEM_ENTERVT:
|
||||
return "DRM_IOCTL_I915_GEM_ENTERVT";
|
||||
case DRM_IOCTL_I915_GEM_LEAVEVT:
|
||||
return "DRM_IOCTL_I915_GEM_LEAVEVT";
|
||||
case DRM_IOCTL_I915_GEM_CREATE:
|
||||
return "DRM_IOCTL_I915_GEM_CREATE";
|
||||
case DRM_IOCTL_I915_GEM_PREAD:
|
||||
return "DRM_IOCTL_I915_GEM_PREAD";
|
||||
case DRM_IOCTL_I915_GEM_PWRITE:
|
||||
return "DRM_IOCTL_I915_GEM_PWRITE";
|
||||
case DRM_IOCTL_I915_GEM_SET_DOMAIN:
|
||||
return "DRM_IOCTL_I915_GEM_SET_DOMAIN";
|
||||
case DRM_IOCTL_I915_GEM_SW_FINISH:
|
||||
return "DRM_IOCTL_I915_GEM_SW_FINISH";
|
||||
case DRM_IOCTL_I915_GEM_SET_TILING:
|
||||
return "DRM_IOCTL_I915_GEM_SET_TILING";
|
||||
case DRM_IOCTL_I915_GEM_GET_TILING:
|
||||
return "DRM_IOCTL_I915_GEM_GET_TILING";
|
||||
case DRM_IOCTL_I915_GEM_GET_APERTURE:
|
||||
return "DRM_IOCTL_I915_GEM_GET_APERTURE";
|
||||
case DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID:
|
||||
return "DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID";
|
||||
case DRM_IOCTL_I915_GEM_MADVISE:
|
||||
return "DRM_IOCTL_I915_GEM_MADVISE";
|
||||
case DRM_IOCTL_I915_OVERLAY_PUT_IMAGE:
|
||||
return "DRM_IOCTL_I915_OVERLAY_PUT_IMAGE";
|
||||
case DRM_IOCTL_I915_OVERLAY_ATTRS:
|
||||
return "DRM_IOCTL_I915_OVERLAY_ATTRS";
|
||||
case DRM_IOCTL_I915_SET_SPRITE_COLORKEY:
|
||||
return "DRM_IOCTL_I915_SET_SPRITE_COLORKEY";
|
||||
case DRM_IOCTL_I915_GET_SPRITE_COLORKEY:
|
||||
return "DRM_IOCTL_I915_GET_SPRITE_COLORKEY";
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_CREATE:
|
||||
return "DRM_IOCTL_I915_GEM_CONTEXT_CREATE";
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT:
|
||||
return "DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT";
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_DESTROY:
|
||||
return "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY";
|
||||
case DRM_IOCTL_I915_REG_READ:
|
||||
return "DRM_IOCTL_I915_REG_READ";
|
||||
case DRM_IOCTL_I915_GET_RESET_STATS:
|
||||
return "DRM_IOCTL_I915_GET_RESET_STATS";
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM:
|
||||
return "DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM";
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM:
|
||||
return "DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM";
|
||||
case DRM_IOCTL_I915_PERF_OPEN:
|
||||
return "DRM_IOCTL_I915_PERF_OPEN";
|
||||
case DRM_IOCTL_I915_PERF_ADD_CONFIG:
|
||||
return "DRM_IOCTL_I915_PERF_ADD_CONFIG";
|
||||
case DRM_IOCTL_I915_PERF_REMOVE_CONFIG:
|
||||
return "DRM_IOCTL_I915_PERF_REMOVE_CONFIG";
|
||||
case DRM_IOCTL_I915_QUERY:
|
||||
return "DRM_IOCTL_I915_QUERY";
|
||||
case DRM_IOCTL_I915_GEM_MMAP:
|
||||
return "DRM_IOCTL_I915_GEM_MMAP";
|
||||
default:
|
||||
return getIoctlStringRemaining(request);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace IoctlHelper
|
||||
|
@ -88,7 +209,7 @@ int Drm::ioctl(unsigned long request, void *arg) {
|
|||
auto printIoctl = DebugManager.flags.PrintIoctlEntries.get();
|
||||
|
||||
if (printIoctl) {
|
||||
printf("IOCTL %s called\n", this->ioctlToString(request).c_str());
|
||||
printf("IOCTL %s called\n", IoctlHelper::getIoctlString(request).c_str());
|
||||
}
|
||||
|
||||
ret = SysCalls::ioctl(getFileDescriptor(), request, arg);
|
||||
|
@ -96,7 +217,7 @@ int Drm::ioctl(unsigned long request, void *arg) {
|
|||
returnedErrno = errno;
|
||||
|
||||
if (printIoctl) {
|
||||
printf("IOCTL %s returns %d, errno %d(%s)\n", this->ioctlToString(request).c_str(), ret, returnedErrno, strerror(returnedErrno));
|
||||
printf("IOCTL %s returns %d, errno %d(%s)\n", IoctlHelper::getIoctlString(request).c_str(), ret, returnedErrno, strerror(returnedErrno));
|
||||
}
|
||||
|
||||
if (measureTime) {
|
||||
|
@ -127,7 +248,7 @@ int Drm::getParamIoctl(int param, int *dstValue) {
|
|||
int retVal = ioctl(DRM_IOCTL_I915_GETPARAM, &getParam);
|
||||
if (DebugManager.flags.PrintIoctlEntries.get()) {
|
||||
printf("DRM_IOCTL_I915_GETPARAM: param: %s, output value: %d, retCode:% d\n",
|
||||
IoctlHelper::getIoctlParamString(param),
|
||||
IoctlHelper::getIoctlParamString(param).c_str(),
|
||||
*getParam.value,
|
||||
retVal);
|
||||
}
|
||||
|
@ -493,132 +614,11 @@ void Drm::printIoctlStatistics() {
|
|||
printf("\n--- Ioctls statistics ---\n");
|
||||
printf("%40s %15s %10s %20s", "Request", "Total time(ns)", "Count", "Avg time per ioctl\n");
|
||||
for (const auto &ioctlData : this->ioctlStatistics) {
|
||||
printf("%40s %15llu %10lu %20f\n", this->ioctlToString(ioctlData.first).c_str(), ioctlData.second.first, static_cast<unsigned long>(ioctlData.second.second), ioctlData.second.first / static_cast<double>(ioctlData.second.second));
|
||||
printf("%40s %15llu %10lu %20f\n", IoctlHelper::getIoctlString(ioctlData.first).c_str(), ioctlData.second.first, static_cast<unsigned long>(ioctlData.second.second), ioctlData.second.first / static_cast<double>(ioctlData.second.second));
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
std::string Drm::ioctlToString(unsigned long request) {
|
||||
switch (request) {
|
||||
case DRM_IOCTL_I915_GEM_EXECBUFFER2:
|
||||
return "DRM_IOCTL_I915_GEM_EXECBUFFER2";
|
||||
case DRM_IOCTL_I915_GEM_WAIT:
|
||||
return "DRM_IOCTL_I915_GEM_WAIT";
|
||||
case DRM_IOCTL_GEM_CLOSE:
|
||||
return "DRM_IOCTL_GEM_CLOSE";
|
||||
case DRM_IOCTL_I915_GEM_USERPTR:
|
||||
return "DRM_IOCTL_I915_GEM_USERPTR";
|
||||
case DRM_IOCTL_I915_INIT:
|
||||
return "DRM_IOCTL_I915_INIT";
|
||||
case DRM_IOCTL_I915_FLUSH:
|
||||
return "DRM_IOCTL_I915_FLUSH";
|
||||
case DRM_IOCTL_I915_FLIP:
|
||||
return "DRM_IOCTL_I915_FLIP";
|
||||
case DRM_IOCTL_I915_BATCHBUFFER:
|
||||
return "DRM_IOCTL_I915_BATCHBUFFER";
|
||||
case DRM_IOCTL_I915_IRQ_EMIT:
|
||||
return "DRM_IOCTL_I915_IRQ_EMIT";
|
||||
case DRM_IOCTL_I915_IRQ_WAIT:
|
||||
return "DRM_IOCTL_I915_IRQ_WAIT";
|
||||
case DRM_IOCTL_I915_GETPARAM:
|
||||
return "DRM_IOCTL_I915_GETPARAM";
|
||||
case DRM_IOCTL_I915_SETPARAM:
|
||||
return "DRM_IOCTL_I915_SETPARAM";
|
||||
case DRM_IOCTL_I915_ALLOC:
|
||||
return "DRM_IOCTL_I915_ALLOC";
|
||||
case DRM_IOCTL_I915_FREE:
|
||||
return "DRM_IOCTL_I915_FREE";
|
||||
case DRM_IOCTL_I915_INIT_HEAP:
|
||||
return "DRM_IOCTL_I915_INIT_HEAP";
|
||||
case DRM_IOCTL_I915_CMDBUFFER:
|
||||
return "DRM_IOCTL_I915_CMDBUFFER";
|
||||
case DRM_IOCTL_I915_DESTROY_HEAP:
|
||||
return "DRM_IOCTL_I915_DESTROY_HEAP";
|
||||
case DRM_IOCTL_I915_SET_VBLANK_PIPE:
|
||||
return "DRM_IOCTL_I915_SET_VBLANK_PIPE";
|
||||
case DRM_IOCTL_I915_GET_VBLANK_PIPE:
|
||||
return "DRM_IOCTL_I915_GET_VBLANK_PIPE";
|
||||
case DRM_IOCTL_I915_VBLANK_SWAP:
|
||||
return "DRM_IOCTL_I915_VBLANK_SWAP";
|
||||
case DRM_IOCTL_I915_HWS_ADDR:
|
||||
return "DRM_IOCTL_I915_HWS_ADDR";
|
||||
case DRM_IOCTL_I915_GEM_INIT:
|
||||
return "DRM_IOCTL_I915_GEM_INIT";
|
||||
case DRM_IOCTL_I915_GEM_EXECBUFFER:
|
||||
return "DRM_IOCTL_I915_GEM_EXECBUFFER";
|
||||
case DRM_IOCTL_I915_GEM_EXECBUFFER2_WR:
|
||||
return "DRM_IOCTL_I915_GEM_EXECBUFFER2_WR";
|
||||
case DRM_IOCTL_I915_GEM_PIN:
|
||||
return "DRM_IOCTL_I915_GEM_PIN";
|
||||
case DRM_IOCTL_I915_GEM_UNPIN:
|
||||
return "DRM_IOCTL_I915_GEM_UNPIN";
|
||||
case DRM_IOCTL_I915_GEM_BUSY:
|
||||
return "DRM_IOCTL_I915_GEM_BUSY";
|
||||
case DRM_IOCTL_I915_GEM_SET_CACHING:
|
||||
return "DRM_IOCTL_I915_GEM_SET_CACHING";
|
||||
case DRM_IOCTL_I915_GEM_GET_CACHING:
|
||||
return "DRM_IOCTL_I915_GEM_GET_CACHING";
|
||||
case DRM_IOCTL_I915_GEM_THROTTLE:
|
||||
return "DRM_IOCTL_I915_GEM_THROTTLE";
|
||||
case DRM_IOCTL_I915_GEM_ENTERVT:
|
||||
return "DRM_IOCTL_I915_GEM_ENTERVT";
|
||||
case DRM_IOCTL_I915_GEM_LEAVEVT:
|
||||
return "DRM_IOCTL_I915_GEM_LEAVEVT";
|
||||
case DRM_IOCTL_I915_GEM_CREATE:
|
||||
return "DRM_IOCTL_I915_GEM_CREATE";
|
||||
case DRM_IOCTL_I915_GEM_PREAD:
|
||||
return "DRM_IOCTL_I915_GEM_PREAD";
|
||||
case DRM_IOCTL_I915_GEM_PWRITE:
|
||||
return "DRM_IOCTL_I915_GEM_PWRITE";
|
||||
case DRM_IOCTL_I915_GEM_SET_DOMAIN:
|
||||
return "DRM_IOCTL_I915_GEM_SET_DOMAIN";
|
||||
case DRM_IOCTL_I915_GEM_SW_FINISH:
|
||||
return "DRM_IOCTL_I915_GEM_SW_FINISH";
|
||||
case DRM_IOCTL_I915_GEM_SET_TILING:
|
||||
return "DRM_IOCTL_I915_GEM_SET_TILING";
|
||||
case DRM_IOCTL_I915_GEM_GET_TILING:
|
||||
return "DRM_IOCTL_I915_GEM_GET_TILING";
|
||||
case DRM_IOCTL_I915_GEM_GET_APERTURE:
|
||||
return "DRM_IOCTL_I915_GEM_GET_APERTURE";
|
||||
case DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID:
|
||||
return "DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID";
|
||||
case DRM_IOCTL_I915_GEM_MADVISE:
|
||||
return "DRM_IOCTL_I915_GEM_MADVISE";
|
||||
case DRM_IOCTL_I915_OVERLAY_PUT_IMAGE:
|
||||
return "DRM_IOCTL_I915_OVERLAY_PUT_IMAGE";
|
||||
case DRM_IOCTL_I915_OVERLAY_ATTRS:
|
||||
return "DRM_IOCTL_I915_OVERLAY_ATTRS";
|
||||
case DRM_IOCTL_I915_SET_SPRITE_COLORKEY:
|
||||
return "DRM_IOCTL_I915_SET_SPRITE_COLORKEY";
|
||||
case DRM_IOCTL_I915_GET_SPRITE_COLORKEY:
|
||||
return "DRM_IOCTL_I915_GET_SPRITE_COLORKEY";
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_CREATE:
|
||||
return "DRM_IOCTL_I915_GEM_CONTEXT_CREATE";
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT:
|
||||
return "DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT";
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_DESTROY:
|
||||
return "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY";
|
||||
case DRM_IOCTL_I915_REG_READ:
|
||||
return "DRM_IOCTL_I915_REG_READ";
|
||||
case DRM_IOCTL_I915_GET_RESET_STATS:
|
||||
return "DRM_IOCTL_I915_GET_RESET_STATS";
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM:
|
||||
return "DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM";
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM:
|
||||
return "DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM";
|
||||
case DRM_IOCTL_I915_PERF_OPEN:
|
||||
return "DRM_IOCTL_I915_PERF_OPEN";
|
||||
case DRM_IOCTL_I915_PERF_ADD_CONFIG:
|
||||
return "DRM_IOCTL_I915_PERF_ADD_CONFIG";
|
||||
case DRM_IOCTL_I915_PERF_REMOVE_CONFIG:
|
||||
return "DRM_IOCTL_I915_PERF_REMOVE_CONFIG";
|
||||
case DRM_IOCTL_I915_QUERY:
|
||||
return "DRM_IOCTL_I915_QUERY";
|
||||
default:
|
||||
return ioctlToStringImpl(request);
|
||||
}
|
||||
}
|
||||
|
||||
bool Drm::createVirtualMemoryAddressSpace(uint32_t vmCount) {
|
||||
for (auto i = 0u; i < vmCount; i++) {
|
||||
uint32_t id = i;
|
||||
|
|
|
@ -55,6 +55,13 @@ struct DeviceDescriptor { // NOLINT(clang-analyzer-optin.performance.Padding)
|
|||
|
||||
extern const DeviceDescriptor deviceDescriptorTable[];
|
||||
|
||||
namespace IoctlHelper {
|
||||
std::string getIoctlParamString(int param);
|
||||
std::string getIoctlParamStringRemaining(int param);
|
||||
std::string getIoctlString(unsigned long request);
|
||||
std::string getIoctlStringRemaining(unsigned long request);
|
||||
} // namespace IoctlHelper
|
||||
|
||||
class Drm : public DriverModel {
|
||||
friend DeviceFactory;
|
||||
|
||||
|
@ -232,8 +239,6 @@ class Drm : public DriverModel {
|
|||
bool translateTopologyInfo(const drm_i915_query_topology_info *queryTopologyInfo, QueryTopologyData &data, TopologyMapping &mapping);
|
||||
std::string generateUUID();
|
||||
std::string generateElfUUID(const void *data);
|
||||
std::string ioctlToString(unsigned long request);
|
||||
std::string ioctlToStringImpl(unsigned long request);
|
||||
std::string getSysFsPciPath();
|
||||
std::unique_ptr<uint8_t[]> query(uint32_t queryId, uint32_t queryItemFlags, int32_t &length);
|
||||
void printIoctlStatistics();
|
||||
|
|
|
@ -17,6 +17,22 @@
|
|||
|
||||
namespace NEO {
|
||||
|
||||
namespace IoctlHelper {
|
||||
std::string getIoctlStringRemaining(unsigned long request) {
|
||||
switch (request) {
|
||||
default:
|
||||
return std::to_string(request);
|
||||
}
|
||||
}
|
||||
|
||||
std::string getIoctlParamStringRemaining(int param) {
|
||||
switch (param) {
|
||||
default:
|
||||
return std::to_string(param);
|
||||
}
|
||||
}
|
||||
} // namespace IoctlHelper
|
||||
|
||||
int Drm::getMaxGpuFrequency(HardwareInfo &hwInfo, int &maxGpuFrequency) {
|
||||
maxGpuFrequency = 0;
|
||||
std::string clockSysFsPath = getSysFsPciPath();
|
||||
|
@ -86,10 +102,6 @@ bool Drm::isVmBindAvailable() {
|
|||
void Drm::appendDrmContextFlags(drm_i915_gem_context_create_ext &gcc, bool isSpecialContextRequested) {
|
||||
}
|
||||
|
||||
std::string Drm::ioctlToStringImpl(unsigned long request) {
|
||||
return std::to_string(request);
|
||||
}
|
||||
|
||||
void Drm::setupCacheInfo(const HardwareInfo &hwInfo) {
|
||||
this->cacheInfo.reset(new CacheInfoImpl());
|
||||
}
|
||||
|
|
|
@ -19,6 +19,22 @@
|
|||
namespace NEO {
|
||||
class OsContext;
|
||||
|
||||
namespace IoctlHelper {
|
||||
std::string getIoctlStringRemaining(unsigned long request) {
|
||||
switch (request) {
|
||||
default:
|
||||
return std::to_string(request);
|
||||
}
|
||||
}
|
||||
|
||||
std::string getIoctlParamStringRemaining(int param) {
|
||||
switch (param) {
|
||||
default:
|
||||
return std::to_string(param);
|
||||
}
|
||||
}
|
||||
} // namespace IoctlHelper
|
||||
|
||||
int Drm::getMaxGpuFrequency(HardwareInfo &hwInfo, int &maxGpuFrequency) {
|
||||
maxGpuFrequency = 0;
|
||||
std::string clockSysFsPath = getSysFsPciPath();
|
||||
|
@ -95,10 +111,6 @@ bool Drm::isVmBindAvailable() {
|
|||
void Drm::appendDrmContextFlags(drm_i915_gem_context_create_ext &gcc, bool isSpecialContextRequested) {
|
||||
}
|
||||
|
||||
std::string Drm::ioctlToStringImpl(unsigned long request) {
|
||||
return std::to_string(request);
|
||||
}
|
||||
|
||||
void Drm::setupCacheInfo(const HardwareInfo &hwInfo) {
|
||||
this->cacheInfo.reset(new CacheInfoImpl());
|
||||
}
|
||||
|
|
|
@ -123,3 +123,15 @@ HWTEST2_F(HwConfigTopologyQuery, WhenGettingTopologyFailsThenSetMaxValuesBasedOn
|
|||
EXPECT_EQ(static_cast<uint32_t>(drm->storedEUVal), outHwInfo.gtSystemInfo.EUCount);
|
||||
EXPECT_EQ(static_cast<uint32_t>(drm->storedSSVal), outHwInfo.gtSystemInfo.SubSliceCount);
|
||||
}
|
||||
|
||||
TEST(DrmQueryTest, givenIoctlWhenParseToStringThenProperStringIsReturned) {
|
||||
for (auto ioctlCodeString : ioctlCodeStringMap) {
|
||||
EXPECT_STREQ(IoctlHelper::getIoctlString(ioctlCodeString.first).c_str(), ioctlCodeString.second);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(DrmQueryTest, givenIoctlParamWhenParseToStringThenProperStringIsReturned) {
|
||||
for (auto ioctlParamCodeString : ioctlParamCodeStringMap) {
|
||||
EXPECT_STREQ(IoctlHelper::getIoctlParamString(ioctlParamCodeString.first).c_str(), ioctlParamCodeString.second);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue