SWDEV-485866 - Return OOM if stream creation fails due to insufficient memory.

Change-Id: I4e57ecc81921bde274bb6a4e0890f0fc6a17955a
Šī revīzija ir iekļauta:
Jaydeep Patel
2024-09-19 06:59:43 +00:00
revīziju iesūtīja Jaydeepkumar Patel
vecāks b977101893
revīzija 5ccc140e1b
4 mainīti faili ar 11 papildinājumiem un 3 dzēšanām
+4
Parādīt failu
@@ -36,6 +36,10 @@ hip::Stream* Device::NullStream(bool wait) {
amd::ScopedLock lock(lock_);
if (null_stream_ == nullptr) {
null_stream_ = new Stream(this, Stream::Priority::Normal, 0, true);
// Stream creation might be failed from rcor and in that case, vdev is null.
if (null_stream_->vdev() == nullptr) {
Stream::Destroy(null_stream_);
}
}
}
if (null_stream_ == nullptr) {
+1
Parādīt failu
@@ -3328,6 +3328,7 @@ hipError_t ihipMemset(void* dst, int64_t value, size_t valueSize, size_t sizeByt
}
std::vector<amd::Command*> commands;
hip::Stream* hip_stream = hip::getStream(stream);
if (hip_stream == nullptr) { return hipErrorOutOfMemory; }
hip_error = ihipMemsetCommand(commands, dst, value, valueSize, sizeBytes, hip_stream);
if (hip_error != hipSuccess) {
break;
+1
Parādīt failu
@@ -75,6 +75,7 @@ bool Stream::Create() {
void Stream::Destroy(hip::Stream* stream) {
stream->device_->RemoveStream(stream);
stream->release();
stream = nullptr;
}
// ================================================================================================
+5 -3
Parādīt failu
@@ -1461,9 +1461,11 @@ bool VirtualGPU::initPool(size_t kernarg_pool_size) {
roc_device_.info().largeBar_) {
kernarg_pool_base_ =
reinterpret_cast<address>(roc_device_.deviceLocalAlloc(kernarg_pool_size_));
// @note Workaround first access penalty.
// KFD may update CPU page tables on the first CPU access
*kernarg_pool_base_ = 0;
if (kernarg_pool_base_ != nullptr) {
// @note Workaround first access penalty.
// KFD may update CPU page tables on the first CPU access
*kernarg_pool_base_ = 0;
}
} else {
kernarg_pool_base_ = reinterpret_cast<address>(roc_device_.hostAlloc(kernarg_pool_size_, 0,
Device::MemorySegment::kKernArg));