[PATCH 04/14] accel/ivpu: Expose NPU memory utilization info in sysfs
Jacek Lawrynowicz
jacek.lawrynowicz at linux.intel.com
Thu Jan 9 08:19:59 UTC 2025
Hi,
On 1/8/2025 8:53 PM, Lizhi Hou wrote:
>
> On 1/7/25 09:32, Maciej Falkowski wrote:
>> Expose NPU memory utilization info in sysfs in bytes
>> to show total memory used by NPU (FW + runtime).
>>
>> Signed-off-by: Maciej Falkowski <maciej.falkowski at linux.intel.com>
>> ---
>> drivers/accel/ivpu/ivpu_sysfs.c | 30 +++++++++++++++++++++++++++++-
>> 1 file changed, 29 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/accel/ivpu/ivpu_sysfs.c b/drivers/accel/ivpu/ivpu_sysfs.c
>> index 8a616791c32f..97102feaf8dd 100644
>> --- a/drivers/accel/ivpu/ivpu_sysfs.c
>> +++ b/drivers/accel/ivpu/ivpu_sysfs.c
>> @@ -7,11 +7,14 @@
>> #include <linux/err.h>
>> #include "ivpu_drv.h"
>> +#include "ivpu_gem.h"
>> #include "ivpu_fw.h"
>> #include "ivpu_hw.h"
>> #include "ivpu_sysfs.h"
>> -/*
>> +/**
>> + * DOC: npu_busy_time_us
>> + *
>> * npu_busy_time_us is the time that the device spent executing jobs.
>> * The time is counted when and only when there are jobs submitted to firmware.
>> *
>> @@ -42,6 +45,30 @@ npu_busy_time_us_show(struct device *dev, struct device_attribute *attr, char *b
>> static DEVICE_ATTR_RO(npu_busy_time_us);
>> +/**
>> + * DOC: npu_memory_utilization
>> + *
>> + * The npu_memory_utilization is used to report in bytes a current NPU memory utilization.
>> + *
>> + */
>> +static ssize_t
>> +npu_memory_utilization_show(struct device *dev, struct device_attribute *attr, char *buf)
>> +{
>> + struct drm_device *drm = dev_get_drvdata(dev);
>> + struct ivpu_device *vdev = to_ivpu_device(drm);
>> + struct ivpu_bo *bo;
>> + u64 total_npu_memory = 0;
>> +
>> + mutex_lock(&vdev->bo_list_lock);
>> + list_for_each_entry(bo, &vdev->bo_list, bo_list_node)
>> + total_npu_memory += bo->base.base.size;
>> + mutex_unlock(&vdev->bo_list_lock);
>> +
>> + return sysfs_emit(buf, "%lld\n", total_npu_memory);
>> +}
>> +
>> +static DEVICE_ATTR_RO(npu_memory_utilization);
>> +
>
> Instead of adding sysfs, maybe implementing show_fdinfo callback and call drm_show_memory_stats()?
show_fdinfo cannot be used for global device stats. We are considering adding per context stats using show_fdinfo but for the moment total device memory usage is our priority.
Regards,
Jacek
More information about the dri-devel
mailing list