P4 to Git Change 1989089 by kjayapra@0_HIPWS_P2P_ROCM on 2019/08/26 14:24:21
SWDEV-198194 - Delete vars at __hipUnregisterFatBinary.
Affected files ...
... //depot/stg/opencl/drivers/opencl/api/hip/hip_internal.hpp#39 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_module.cpp#38 edit
... //depot/stg/opencl/drivers/opencl/api/hip/hip_platform.cpp#40 edit
[ROCm/clr commit: 441eefa78b]
This commit is contained in:
@@ -154,7 +154,7 @@ public:
|
||||
return *platform_;
|
||||
}
|
||||
|
||||
void unregisterVar(hipModule_t hmod);
|
||||
std::vector< std::pair<hipModule_t, bool> >* unregisterVar(hipModule_t hmod);
|
||||
|
||||
void registerVar(const void* hostvar, const DeviceVar& var);
|
||||
void registerFunction(const void* hostFunction, const DeviceFunction& func);
|
||||
|
||||
@@ -71,7 +71,11 @@ hipError_t hipModuleLoad(hipModule_t* module, const char* fname)
|
||||
}
|
||||
|
||||
bool ihipModuleUnregisterGlobal(hipModule_t hmod) {
|
||||
PlatformState::instance().unregisterVar(hmod);
|
||||
std::vector< std::pair<hipModule_t, bool> >* modules =
|
||||
PlatformState::instance().unregisterVar(hmod);
|
||||
if (modules != nullptr) {
|
||||
delete modules;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -165,18 +165,20 @@ extern "C" std::vector< std::pair<hipModule_t, bool> >* __hipRegisterFatBinary(c
|
||||
return programs;
|
||||
}
|
||||
|
||||
void PlatformState::unregisterVar(hipModule_t hmod) {
|
||||
std::vector< std::pair<hipModule_t, bool> >* PlatformState::unregisterVar(hipModule_t hmod) {
|
||||
amd::ScopedLock lock(lock_);
|
||||
std::vector< std::pair<hipModule_t, bool> >* rmodules = nullptr;
|
||||
auto it = vars_.begin();
|
||||
while (it != vars_.end()) {
|
||||
DeviceVar& dvar = it->second;
|
||||
if ((*dvar.modules)[0].first == hmod) {
|
||||
delete dvar.modules;
|
||||
rmodules = dvar.modules;
|
||||
vars_.erase(it++);
|
||||
} else {
|
||||
++it;
|
||||
}
|
||||
}
|
||||
return rmodules;
|
||||
}
|
||||
|
||||
void PlatformState::registerVar(const void* hostvar,
|
||||
@@ -392,6 +394,7 @@ extern "C" void __hipUnregisterFatBinary(std::vector< std::pair<hipModule_t, boo
|
||||
as_amd(reinterpret_cast<cl_program>(module.first))->release();
|
||||
}
|
||||
});
|
||||
PlatformState::instance().unregisterVar((*modules)[0].first);
|
||||
delete modules;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user