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
[ROCm/clr commit: f6a68b3c2e]
Dieser Commit ist enthalten in:
1 Ursprung
b5acdd6fdc
Commit
d1d6c448c9
3 Dateien geändert
+6
Keine Dateien entsprechen Ihrer Suche
@@ -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) {
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren