From 4f91b68988b42114dba64e8c90cad2661b6e9433 Mon Sep 17 00:00:00 2001 From: Ioannis Assiouras <38722728+iassiour@users.noreply.github.com> Date: Wed, 12 Nov 2025 17:20:36 +0000 Subject: [PATCH] SWDEV-559166 - Remove obsolete member execInfoOffset from KernelParameters (#1790) --- projects/clr/rocclr/device/pal/palvirtual.cpp | 2 +- projects/clr/rocclr/device/rocm/rocvirtual.cpp | 2 +- projects/clr/rocclr/platform/kernel.cpp | 3 +-- projects/clr/rocclr/platform/kernel.hpp | 8 ++------ 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/projects/clr/rocclr/device/pal/palvirtual.cpp b/projects/clr/rocclr/device/pal/palvirtual.cpp index be394d6b23..b60f1ae964 100644 --- a/projects/clr/rocclr/device/pal/palvirtual.cpp +++ b/projects/clr/rocclr/device/pal/palvirtual.cpp @@ -3590,7 +3590,7 @@ bool VirtualGPU::processMemObjectsHSA(const amd::Kernel& kernel, const_address p } // get svm non arugment information void* const* svmPtrArray = - reinterpret_cast(params + kernelParams.getExecInfoOffset()); + reinterpret_cast(params + kernelParams.getTotalSize()); for (size_t i = 0; i < count; i++) { amd::Memory* memory = amd::MemObjMap::FindMemObj(svmPtrArray[i]); if (nullptr == memory) { diff --git a/projects/clr/rocclr/device/rocm/rocvirtual.cpp b/projects/clr/rocclr/device/rocm/rocvirtual.cpp index a1a7a3356b..76a40c7667 100644 --- a/projects/clr/rocclr/device/rocm/rocvirtual.cpp +++ b/projects/clr/rocclr/device/rocm/rocvirtual.cpp @@ -710,7 +710,7 @@ bool VirtualGPU::processMemObjects(const amd::Kernel& kernel, const_address para } size_t count = kernelParams.getNumberOfSvmPtr(); - size_t execInfoOffset = kernelParams.getExecInfoOffset(); + size_t execInfoOffset = kernelParams.getTotalSize(); bool sync = true; amd::Memory* memory = nullptr; diff --git a/projects/clr/rocclr/platform/kernel.cpp b/projects/clr/rocclr/platform/kernel.cpp index ab15dfed4a..2a2332bfed 100644 --- a/projects/clr/rocclr/platform/kernel.cpp +++ b/projects/clr/rocclr/platform/kernel.cpp @@ -304,8 +304,7 @@ address KernelParameters::capture(device::VirtualDevice& vDev, uint64_t lclMemSi } } - execInfoOffset_ = totalSize_; - address last = mem + execInfoOffset_; + address last = mem + totalSize_; if (0 != execInfoSize) { ::memcpy(last, &execSvmPtr_[0], execInfoSize); } diff --git a/projects/clr/rocclr/platform/kernel.hpp b/projects/clr/rocclr/platform/kernel.hpp index 2b789d175d..49c9b4afab 100644 --- a/projects/clr/rocclr/platform/kernel.hpp +++ b/projects/clr/rocclr/platform/kernel.hpp @@ -123,7 +123,6 @@ class KernelParameters : protected HeapObject { KernelSignature& signature_; address values_; //!< pointer to the base of the values stack. - uint32_t execInfoOffset_; //!< The offset of execInfo std::vector execSvmPtr_; //!< The non argument svm pointers for kernel FGSStatus svmSystemPointersSupport_; //!< The flag for the status of the kernel // support of fine-grain system sharing. @@ -148,7 +147,6 @@ class KernelParameters : protected HeapObject { //! Construct a new instance of parameters for the given signature. KernelParameters(KernelSignature& signature) : signature_(signature), - execInfoOffset_(0), svmSystemPointersSupport_(FGS_DEFAULT), memoryObjects_(nullptr), samplerObjects_(nullptr), @@ -168,14 +166,12 @@ class KernelParameters : protected HeapObject { samplerObjects_ = reinterpret_cast(values_ + samplerObjOffset_); queueObjOffset_ = samplerObjOffset_ + signature_.numSamplers() * sizeof(amd::Sampler*); queueObjects_ = reinterpret_cast(values_ + queueObjOffset_); - execInfoOffset_ = totalSize_; address limit = reinterpret_cast
(&queueObjects_[signature_.numQueues()]); ::memset(values_, '\0', limit - values_); } explicit KernelParameters(const KernelParameters& rhs) : signature_(rhs.signature_), - execInfoOffset_(rhs.execInfoOffset_), execSvmPtr_(rhs.execSvmPtr_), svmSystemPointersSupport_(rhs.svmSystemPointersSupport_), memoryObjects_(nullptr), @@ -254,8 +250,8 @@ class KernelParameters : protected HeapObject { //! get the number of svmPtr in the execInfo container size_t getNumberOfSvmPtr() const { return execSvmPtr_.size(); } - //! get the offset of svmPtr in the parameters - uint32_t getExecInfoOffset() const { return execInfoOffset_; } + //! Get the total size of parameters / offset where execInfo (SVM pointers) are stored + uint32_t getTotalSize() const { return totalSize_; } //! get the offset of memory objects in the parameters uint32_t memoryObjOffset() const { return memoryObjOffset_; }