From: Samuel Pitoiset Date: Fri, 24 Feb 2023 09:01:53 +0000 (+0100) Subject: amdgpu: add support for querying VM faults information X-Git-Tag: libdrm-2.4.117~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8d8357dc6482c771d2f9501257c29abe8b06ba9c;p=platform%2Fupstream%2Flibdrm.git amdgpu: add support for querying VM faults information Signed-off-by: Samuel Pitoiset --- diff --git a/amdgpu/amdgpu-symbols.txt b/amdgpu/amdgpu-symbols.txt index d41d9c2..1f7f56c 100644 --- a/amdgpu/amdgpu-symbols.txt +++ b/amdgpu/amdgpu-symbols.txt @@ -63,6 +63,7 @@ amdgpu_query_crtc_from_id amdgpu_query_firmware_version amdgpu_query_gds_info amdgpu_query_gpu_info +amdgpu_query_gpuvm_fault_info amdgpu_query_heap_info amdgpu_query_hw_ip_count amdgpu_query_hw_ip_info diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h index 5ef2524..1cd96f8 100644 --- a/amdgpu/amdgpu.h +++ b/amdgpu/amdgpu.h @@ -1283,6 +1283,22 @@ int amdgpu_query_video_caps_info(amdgpu_device_handle dev, unsigned cap_type, unsigned size, void *value); /** + * Query information about VM faults + * + * The return sizeof(struct drm_amdgpu_info_gpuvm_fault) + * + * \param dev - \c [in] Device handle. See #amdgpu_device_initialize() + * \param size - \c [in] Size of the returned value. + * \param value - \c [out] Pointer to the return value. + * + * \return 0 on success\n + * <0 - Negative POSIX Error code + * +*/ +int amdgpu_query_gpuvm_fault_info(amdgpu_device_handle dev, unsigned size, + void *value); + +/** * Read a set of consecutive memory-mapped registers. * Not all registers are allowed to be read by userspace. * diff --git a/amdgpu/amdgpu_gpu_info.c b/amdgpu/amdgpu_gpu_info.c index 9f8695c..1a5143a 100644 --- a/amdgpu/amdgpu_gpu_info.c +++ b/amdgpu/amdgpu_gpu_info.c @@ -346,3 +346,17 @@ drm_public int amdgpu_query_video_caps_info(amdgpu_device_handle dev, unsigned c return drmCommandWrite(dev->fd, DRM_AMDGPU_INFO, &request, sizeof(struct drm_amdgpu_info)); } + +drm_public int amdgpu_query_gpuvm_fault_info(amdgpu_device_handle dev, + unsigned size, void *value) +{ + struct drm_amdgpu_info request; + + memset(&request, 0, sizeof(request)); + request.return_pointer = (uintptr_t)value; + request.return_size = size; + request.query = AMDGPU_INFO_GPUVM_FAULT; + + return drmCommandWrite(dev->fd, DRM_AMDGPU_INFO, &request, + sizeof(struct drm_amdgpu_info)); +}