mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
accel/ivpu: Expose NPU memory utilization info in sysfs
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
This commit is contained in:
committed by
Jacek Lawrynowicz
parent
5bbccadaf3
commit
7bfc9fa995
@@ -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);
|
||||
|
||||
/**
|
||||
* DOC: sched_mode
|
||||
*
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user