* [PATCH v2 0/9] drm: fdinfo memory stats
@ 2023-04-27 17:53 Rob Clark
2023-04-27 17:53 ` [PATCH v2 4/9] drm/amdgpu: Switch to fdinfo helper Rob Clark
0 siblings, 1 reply; 2+ messages in thread
From: Rob Clark @ 2023-04-27 17:53 UTC (permalink / raw)
To: dri-devel
Cc: open list:DOCUMENTATION, Akhil P Oommen, open list,
Michel Dänzer, YiPeng Chai, Mario Limonciello, Rob Clark,
Guchun Chen, Shashank Sharma,
open list:RADEON and AMDGPU DRM DRIVERS, Luca Weiss, Chia-I Wu,
Arunpravin Paneer Selvam, open list:DRM DRIVER FOR MSM ADRENO GPU,
Alex Deucher, Sean Paul, Tvrtko Ursulin, Elliot Berman,
Tvrtko Ursulin, Emil Velikov, Christopher Healy, Konrad Dybcio,
Boris Brezillon, Daniel Vetter, Dmitry Baryshkov, freedreno,
Christian König, Hawking Zhang
From: Rob Clark <robdclark@chromium.org>
Similar motivation to other similar recent attempt[1]. But with an
attempt to have some shared code for this. As well as documentation.
It is probably a bit UMA-centric, I guess devices with VRAM might want
some placement stats as well. But this seems like a reasonable start.
Basic gputop support: https://patchwork.freedesktop.org/series/116236/
And already nvtop support: https://github.com/Syllo/nvtop/pull/204
I've combined the separate series to add comm/cmdline override onto
the end of this, simply out of convenience (they would otherwise
conflict in a bunch of places).
v2: Extend things to allow for multiple regions other than just system
"memory", make drm_show_memory_stats() a helper so that, drivers
can use it or not based on their needs (but in either case, re-
use drm_print_memory_stats()
[1] https://patchwork.freedesktop.org/series/112397/
Rob Clark (9):
drm/docs: Fix usage stats typos
drm: Add common fdinfo helper
drm/msm: Switch to fdinfo helper
drm/amdgpu: Switch to fdinfo helper
drm: Add fdinfo memory stats
drm/msm: Add memory stats to fdinfo
drm/doc: Relax fdinfo string constraints
drm/fdinfo: Add comm/cmdline override fields
drm/msm: Wire up comm/cmdline override for fdinfo
Documentation/gpu/drm-usage-stats.rst | 109 +++++++++++----
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 3 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c | 16 +--
drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.h | 2 +-
drivers/gpu/drm/drm_file.c | 147 +++++++++++++++++++++
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 24 +++-
drivers/gpu/drm/msm/msm_drv.c | 15 ++-
drivers/gpu/drm/msm/msm_gem.c | 15 +++
drivers/gpu/drm/msm/msm_gpu.c | 2 -
drivers/gpu/drm/msm/msm_gpu.h | 10 ++
include/drm/drm_drv.h | 7 +
include/drm/drm_file.h | 42 ++++++
include/drm/drm_gem.h | 30 +++++
13 files changed, 375 insertions(+), 47 deletions(-)
--
2.39.2
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH v2 4/9] drm/amdgpu: Switch to fdinfo helper
2023-04-27 17:53 [PATCH v2 0/9] drm: fdinfo memory stats Rob Clark
@ 2023-04-27 17:53 ` Rob Clark
0 siblings, 0 replies; 2+ messages in thread
From: Rob Clark @ 2023-04-27 17:53 UTC (permalink / raw)
To: dri-devel
Cc: Lijo Lazar, open list, Michel Dänzer, YiPeng Chai,
Mario Limonciello, David Airlie, Rob Clark, Guchun Chen,
Shashank Sharma, open list:RADEON and AMDGPU DRM DRIVERS,
Arunpravin Paneer Selvam, Tvrtko Ursulin, Tvrtko Ursulin,
Pan, Xinhui, Emil Velikov, Christopher Healy, Boris Brezillon,
Daniel Vetter, Alex Deucher, freedreno, Christian König,
Hawking Zhang
From: Rob Clark <robdclark@chromium.org>
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Christian König <christian.koenig@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 3 ++-
drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c | 16 ++++++----------
drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.h | 2 +-
3 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index f5ffca24def4..6c0e0c614b94 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -2752,7 +2752,7 @@ static const struct file_operations amdgpu_driver_kms_fops = {
.compat_ioctl = amdgpu_kms_compat_ioctl,
#endif
#ifdef CONFIG_PROC_FS
- .show_fdinfo = amdgpu_show_fdinfo
+ .show_fdinfo = drm_show_fdinfo,
#endif
};
@@ -2807,6 +2807,7 @@ static const struct drm_driver amdgpu_kms_driver = {
.dumb_map_offset = amdgpu_mode_dumb_mmap,
.fops = &amdgpu_driver_kms_fops,
.release = &amdgpu_driver_release_kms,
+ .show_fdinfo = amdgpu_show_fdinfo,
.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c
index 99a7855ab1bc..c2fdd5e448d1 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c
@@ -53,9 +53,8 @@ static const char *amdgpu_ip_name[AMDGPU_HW_IP_NUM] = {
[AMDGPU_HW_IP_VCN_JPEG] = "jpeg",
};
-void amdgpu_show_fdinfo(struct seq_file *m, struct file *f)
+void amdgpu_show_fdinfo(struct drm_printer *p, struct drm_file *file)
{
- struct drm_file *file = f->private_data;
struct amdgpu_device *adev = drm_to_adev(file->minor->dev);
struct amdgpu_fpriv *fpriv = file->driver_priv;
struct amdgpu_vm *vm = &fpriv->vm;
@@ -86,18 +85,15 @@ void amdgpu_show_fdinfo(struct seq_file *m, struct file *f)
* ******************************************************************
*/
- seq_printf(m, "pasid:\t%u\n", fpriv->vm.pasid);
- seq_printf(m, "drm-driver:\t%s\n", file->minor->dev->driver->name);
- seq_printf(m, "drm-pdev:\t%04x:%02x:%02x.%d\n", domain, bus, dev, fn);
- seq_printf(m, "drm-client-id:\t%Lu\n", vm->immediate.fence_context);
- seq_printf(m, "drm-memory-vram:\t%llu KiB\n", vram_mem/1024UL);
- seq_printf(m, "drm-memory-gtt: \t%llu KiB\n", gtt_mem/1024UL);
- seq_printf(m, "drm-memory-cpu: \t%llu KiB\n", cpu_mem/1024UL);
+ drm_printf(p, "pasid:\t%u\n", fpriv->vm.pasid);
+ drm_printf(p, "drm-memory-vram:\t%llu KiB\n", vram_mem/1024UL);
+ drm_printf(p, "drm-memory-gtt: \t%llu KiB\n", gtt_mem/1024UL);
+ drm_printf(p, "drm-memory-cpu: \t%llu KiB\n", cpu_mem/1024UL);
for (hw_ip = 0; hw_ip < AMDGPU_HW_IP_NUM; ++hw_ip) {
if (!usage[hw_ip])
continue;
- seq_printf(m, "drm-engine-%s:\t%Ld ns\n", amdgpu_ip_name[hw_ip],
+ drm_printf(p, "drm-engine-%s:\t%Ld ns\n", amdgpu_ip_name[hw_ip],
ktime_to_ns(usage[hw_ip]));
}
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.h
index e86834bfea1d..0398f5a159ef 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.h
@@ -37,6 +37,6 @@
#include "amdgpu_ids.h"
uint32_t amdgpu_get_ip_count(struct amdgpu_device *adev, int id);
-void amdgpu_show_fdinfo(struct seq_file *m, struct file *f);
+void amdgpu_show_fdinfo(struct drm_printer *p, struct drm_file *file);
#endif
--
2.39.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-04-27 17:54 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-27 17:53 [PATCH v2 0/9] drm: fdinfo memory stats Rob Clark
2023-04-27 17:53 ` [PATCH v2 4/9] drm/amdgpu: Switch to fdinfo helper Rob Clark
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox