P4 to Git Change 1123271 by wchau@wchau_WINDOWS7_OCL on 2015/02/18 16:59:12

ECR #399840 - OpenCL Runtime HW Debug support development - add install_trap API to avoid the expose of runtime trap handler to the DBE.

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_context.cpp#41 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_debugger_amd.cpp#5 edit
... //depot/stg/opencl/drivers/opencl/api/opencl/amdocl/cl_debugger_amd.h#5 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudebugmanager.cpp#6 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hwdebug.cpp#4 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hwdebug.hpp#5 edit


[ROCm/clr commit: 7431a16712]
Этот коммит содержится в:
foreman
2015-02-18 17:22:47 -05:00
родитель cdac75c0b6
Коммит 18eb37fc01
3 изменённых файлов: 23 добавлений и 13 удалений
+3 -6
Просмотреть файл
@@ -93,7 +93,6 @@ GpuDebugManager::executePreDispatchCallBack(void* aqlPacket,
oclEventHandle_,
aqlPacket_,
aclBinary_,
deviceTrapInfo_,
preDispatchCallBackArgs_);
}
@@ -107,7 +106,7 @@ GpuDebugManager::executePostDispatchCallBack()
if (NULL != postDispatchCallBackFunc_) {
cl_device_id clDeviceId = as_cl(device_);
postDispatchCallBackFunc_(clDeviceId,
0,
aqlPacket_->completion_signal.handle,
postDispatchCallBackArgs_);
}
}
@@ -202,10 +201,8 @@ GpuDebugManager::setupTrapInformation(DebugToolInfo* toolInfo)
toolInfo->reservedCuNum_ = execMode_.reservedCuNum;
toolInfo->trapHandler_ =
as_amd(reinterpret_cast<cl_mem>(deviceTrapInfo_[kDebugTrapHandlerLocation]));
toolInfo->trapBuffer_ =
as_amd(reinterpret_cast<cl_mem>(deviceTrapInfo_[kDebugTrapBufferLocation]));
toolInfo->trapHandler_ = rtTrapInfo_[kDebugTrapHandlerLocation];
toolInfo->trapBuffer_ = rtTrapInfo_[kDebugTrapBufferLocation];
}
+13 -1
Просмотреть файл
@@ -45,7 +45,9 @@ HwDebugManager::HwDebugManager(amd::Device* device)
{
memset(&debugInfo_, 0, sizeof(debugInfo_));
memset(deviceTrapInfo_, 0, sizeof(uint64_t) * kDebugTrapLocationMax);
for (int i = 0; i < kDebugTrapLocationMax; i++) {
rtTrapInfo_[i] = NULL;
}
}
HwDebugManager::~HwDebugManager()
@@ -172,4 +174,14 @@ HwDebugManager::assignKernelParamMem(uint32_t paramIdx, amd::Memory* mem)
paramMemory_[paramIdx] = mem;
}
void
HwDebugManager::installTrap(cl_dbg_trap_type_amd trapType,
amd::Memory* trapHandler,
amd::Memory* trapBuffer)
{
rtTrapInfo_[trapType<<2] = trapHandler;
rtTrapInfo_[(trapType<<2)+1] = trapBuffer;
}
} // namespace amd
+7 -6
Просмотреть файл
@@ -157,6 +157,11 @@ public:
//! Get kernel parameter memory object
cl_mem getKernelParamMem(uint32_t paramIdx) const;
//! Install trap handler
void installTrap(cl_dbg_trap_type_amd trapType,
amd::Memory* pTrapHandler,
amd::Memory* pTrapBuffer);
//! Flush cache
virtual void flushCache(uint32_t mask) = 0;
@@ -207,7 +212,7 @@ public:
//! Execute the pre-dispatch callback function
virtual void executePreDispatchCallBack(void* aqlPacket,
void* toolInfo) = 0;
void* toolInfo) = 0;
//! Return the use of HW DEBUG flag
bool isMsgBufferReady() const { return dbgMsgBufferReady_; }
@@ -222,9 +227,6 @@ protected:
//! Return the register flag
bool isRegistered() const { return isRegistered_; }
//! Return the device trap handler information
const uint64_t* deviceTrapInfo() const { return deviceTrapInfo_; }
protected:
const amd::Context* context_; ///< context that used to create host queue for the debugger
@@ -236,7 +238,7 @@ protected:
void* postDispatchCallBackArgs_; //!< post-dispatch callback function arguments
DispatchDebugInfo debugInfo_; //!< Debug setting/information for kernel dispatch
uint64_t deviceTrapInfo_[kDebugTrapLocationMax]; //!< Device trap buffer, to store various trap handlers on the device
amd::Memory* rtTrapInfo_[kDebugTrapLocationMax]; //!< Device trap buffer, to store various trap handlers on the device
amd::Memory** paramMemory_; //!< list of memory pointers for kernel parameters
uint32_t numParams_; //!< number of kernel parameters
@@ -255,7 +257,6 @@ protected:
cl_dbg_exception_policy_amd excpPolicy_; //!< exception policy
cl_dbg_kernel_exec_mode_amd execMode_; //!< kernel execution mode
RuntimeTrapInfo rtTrapHandlerInfo_; //!< Runtime trap information
};