refactor: Add ioctl helper for context destruction

Related-To: NEO-11817

Signed-off-by: Slawomir Milczarek <slawomir.milczarek@intel.com>
This commit is contained in:
Slawomir Milczarek
2025-04-03 13:27:13 +00:00
committed by Compute-Runtime-Automation
parent be27367020
commit 7e7e0a000f
3 changed files with 6 additions and 1 deletions

View File

@@ -121,4 +121,8 @@ BufferObject *IoctlHelper::allocUserptr(DrmMemoryManager &memoryManager, const A
return memoryManager.allocUserptr(address, size, allocData.type, rootDeviceIndex);
}
void IoctlHelper::destroyDrmContext(Drm &drm, OsContextLinux &osContext, uint32_t drmContextId) {
drm.destroyDrmContext(drmContextId);
}
} // namespace NEO

View File

@@ -169,6 +169,7 @@ class IoctlHelper {
virtual bool checkIfIoctlReinvokeRequired(int error, DrmIoctl ioctlRequest) const;
virtual int createDrmContext(Drm &drm, OsContextLinux &osContext, uint32_t drmVmId, uint32_t deviceIndex, bool allocateInterrupt) = 0;
virtual void destroyDrmContext(Drm &drm, OsContextLinux &osContext, uint32_t drmContextId);
virtual bool createMediaContext(uint32_t vmId, void *controlSharedMemoryBuffer, uint32_t controlSharedMemoryBufferSize, void *controlBatchBuffer, uint32_t controlBatchBufferSize, void *&outDoorbell) { return false; }
virtual bool releaseMediaContext(void *doorbellHandle) { return false; }

View File

@@ -174,7 +174,7 @@ uint64_t OsContextLinux::getOfflineDumpContextId(uint32_t deviceIndex) const {
OsContextLinux::~OsContextLinux() {
if (contextInitialized) {
for (auto drmContextId : drmContextIds) {
drm.destroyDrmContext(drmContextId);
drm.getIoctlHelper()->destroyDrmContext(drm, *this, drmContextId);
}
}
drmContextIds.clear();