SWDEV-462192 SWDEV-459056 - Fixes corruption
SPT is destroyed with hipDeviceReset(). If a stream is created right after reset, the same object id could be reused. Later SPT destructor incorrectly verifies that the stream is valid referring to the reused object id causing the corruption. Change-Id: I3b1f7ffdf8bab874dca7b8fde22318162997b8f6
This commit is contained in:
کامیت شده توسط
Sourabh Betigeri
والد
464b99373b
کامیت
f6a68b3c2e
@@ -249,6 +249,7 @@ void Device::destroyAllStreams() {
|
||||
for (auto& it : toBeDeleted) {
|
||||
hip::Stream::Destroy(it);
|
||||
}
|
||||
hip::tls.stream_per_thread_obj_.clear_spt();
|
||||
}
|
||||
|
||||
// ================================================================================================
|
||||
|
||||
@@ -269,6 +269,7 @@ public:
|
||||
void operator=(const stream_per_thread& ) = delete;
|
||||
~stream_per_thread();
|
||||
hipStream_t get();
|
||||
void clear_spt();
|
||||
};
|
||||
|
||||
class Device;
|
||||
|
||||
@@ -236,6 +236,10 @@ hipStream_t stream_per_thread::get() {
|
||||
return m_streams[currDev];
|
||||
}
|
||||
|
||||
void stream_per_thread::clear_spt() {
|
||||
m_streams[getCurrentDevice()->deviceId()] = nullptr;
|
||||
}
|
||||
|
||||
|
||||
// ================================================================================================
|
||||
void getStreamPerThread(hipStream_t& stream) {
|
||||
|
||||
مرجع در شماره جدید
Block a user