Skip to content

Commit

Permalink
accel/ivpu: Expose NPU memory utilization info in sysfs
Browse files Browse the repository at this point in the history
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@linux.intel.com>
Reviewed-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250107173238.381120-5-maciej.falkowski@linux.intel.com
  • Loading branch information
Maciej Falkowski authored and Jacek Lawrynowicz committed Jan 9, 2025
1 parent 5bbccad commit 7bfc9fa
Showing 1 changed file with 29 additions and 1 deletion.
30 changes: 29 additions & 1 deletion drivers/accel/ivpu/ivpu_sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*
Expand Down Expand Up @@ -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);

/**
* DOC: sched_mode
*
Expand All @@ -65,6 +92,7 @@ static DEVICE_ATTR_RO(sched_mode);

static struct attribute *ivpu_dev_attrs[] = {
&dev_attr_npu_busy_time_us.attr,
&dev_attr_npu_memory_utilization.attr,
&dev_attr_sched_mode.attr,
NULL,
};
Expand Down

0 comments on commit 7bfc9fa

Please sign in to comment.