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@xxxxxxxxxxxxxxx> >> --- >> 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