[PATCH libdrm] amdgpu: allow to query GPU sensor related information

Samuel Pitoiset samuel.pitoiset at gmail.com
Tue Apr 4 14:31:36 UTC 2017



On 04/04/2017 03:11 PM, Andreas Boll wrote:
> Please make sure that make check still passes with this patch applied.
> I guess amdgpu/amdgpu-symbol-check needs to be updated with the new symbol.

Correct. Thanks for noticing this, I will update the patch.

>
> Thanks,
> Andreas
>
> 2017-04-04 10:37 GMT+02:00 Samuel Pitoiset <samuel.pitoiset at gmail.com>:
>> This exposes amdgpu_query_sensor_info().
>>
>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>> ---
>>  amdgpu/amdgpu.h          | 18 ++++++++++++++++++
>>  amdgpu/amdgpu_gpu_info.c | 15 +++++++++++++++
>>  2 files changed, 33 insertions(+)
>>
>> diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h
>> index 6b2ded83..55884b24 100644
>> --- a/amdgpu/amdgpu.h
>> +++ b/amdgpu/amdgpu.h
>> @@ -1059,6 +1059,24 @@ int amdgpu_query_gds_info(amdgpu_device_handle dev,
>>                         struct amdgpu_gds_resource_info *gds_info);
>>
>>  /**
>> + * Query information about sensor.
>> + *
>> + * The return size is query-specific and depends on the "sensor_type"
>> + * parameter. No more than "size" bytes is returned.
>> + *
>> + * \param   dev         - \c [in] Device handle. See #amdgpu_device_initialize()
>> + * \param   sensor_type - \c [in] AMDGPU_INFO_SENSOR_*
>> + * \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_sensor_info(amdgpu_device_handle dev, unsigned sensor_type,
>> +                            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 c5f5f6f4..f4b94c9e 100644
>> --- a/amdgpu/amdgpu_gpu_info.c
>> +++ b/amdgpu/amdgpu_gpu_info.c
>> @@ -318,3 +318,18 @@ int amdgpu_query_gds_info(amdgpu_device_handle dev,
>>
>>         return 0;
>>  }
>> +
>> +int amdgpu_query_sensor_info(amdgpu_device_handle dev, unsigned sensor_type,
>> +                            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_SENSOR;
>> +       request.sensor_info.type = sensor_type;
>> +
>> +       return drmCommandWrite(dev->fd, DRM_AMDGPU_INFO, &request,
>> +                              sizeof(struct drm_amdgpu_info));
>> +}
>> --
>> 2.12.2
>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list