summaryrefslogtreecommitdiff
path: root/mali_kbase/mali_kbase_core_linux.c
diff options
context:
space:
mode:
authorAnkit Goyal <layog@google.com>2021-07-22 17:43:56 +0800
committerAnkit Goyal <layog@google.com>2021-07-23 17:08:44 +0000
commitbb5eae0a1480d69a1117d0c8e22ef74975a0373a (patch)
treea87469744de9fb04fe8c35a4e44b0c4ce212b9fb /mali_kbase/mali_kbase_core_linux.c
parentd11022e2a8851737b87e32eba8afe495b2a39f72 (diff)
downloadgpu-bb5eae0a1480d69a1117d0c8e22ef74975a0373a.tar.gz
Revert "Revert "mali_kbase: platform: Add per-process and global sysfs n...""
This reverts commit 9e6d1d7e88bae9f4be2ffbb20c9ac4655296c5d6. Bug: 191966412 Signed-off-by: Ankit Goyal <layog@google.com> Change-Id: I94b91105e1e00af58445c94080df62321aa777ae
Diffstat (limited to 'mali_kbase/mali_kbase_core_linux.c')
-rw-r--r--mali_kbase/mali_kbase_core_linux.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/mali_kbase/mali_kbase_core_linux.c b/mali_kbase/mali_kbase_core_linux.c
index f6715ed..7c4b448 100644
--- a/mali_kbase/mali_kbase_core_linux.c
+++ b/mali_kbase/mali_kbase_core_linux.c
@@ -5072,6 +5072,36 @@ static struct attribute *kbase_scheduling_attrs[] = {
NULL
};
+static ssize_t total_gpu_mem_show(
+ struct device *dev,
+ struct device_attribute *attr,
+ char *const buf)
+{
+ struct kbase_device *kbdev;
+ kbdev = to_kbase_device(dev);
+ if (!kbdev)
+ return -ENODEV;
+
+ return sysfs_emit(buf, "%lu\n",
+ (unsigned long) kbdev->total_gpu_pages << PAGE_SHIFT);
+}
+static DEVICE_ATTR_RO(total_gpu_mem);
+
+static ssize_t dma_buf_gpu_mem_show(
+ struct device *dev,
+ struct device_attribute *attr,
+ char *const buf)
+{
+ struct kbase_device *kbdev;
+ kbdev = to_kbase_device(dev);
+ if (!kbdev)
+ return -ENODEV;
+
+ return sysfs_emit(buf, "%lu\n",
+ (unsigned long) kbdev->dma_buf_pages << PAGE_SHIFT);
+}
+static DEVICE_ATTR_RO(dma_buf_gpu_mem);
+
static struct attribute *kbase_attrs[] = {
#ifdef CONFIG_MALI_DEBUG
&dev_attr_debug_command.attr,
@@ -5105,6 +5135,8 @@ static struct attribute *kbase_attrs[] = {
#if !MALI_USE_CSF
&dev_attr_js_ctx_scheduling_mode.attr,
#endif /* !MALI_USE_CSF */
+ &dev_attr_total_gpu_mem.attr,
+ &dev_attr_dma_buf_gpu_mem.attr,
NULL
};
@@ -5166,6 +5198,9 @@ int kbase_sysfs_init(struct kbase_device *kbdev)
&kbase_attr_group);
}
+ kbdev->proc_sysfs_node = kobject_create_and_add("kprcs",
+ &kbdev->dev->kobj);
+
return err;
}
@@ -5174,6 +5209,8 @@ void kbase_sysfs_term(struct kbase_device *kbdev)
sysfs_remove_group(&kbdev->dev->kobj, &kbase_mempool_attr_group);
sysfs_remove_group(&kbdev->dev->kobj, &kbase_scheduling_attr_group);
sysfs_remove_group(&kbdev->dev->kobj, &kbase_attr_group);
+ kobject_del(kbdev->proc_sysfs_node);
+ kobject_put(kbdev->proc_sysfs_node);
put_device(kbdev->dev);
}