* [PATCH v4 4/9] drm/amdgpu: Switch to fdinfo helper
2023-05-15 14:30 [PATCH v4 0/9] drm: fdinfo memory stats Rob Clark
@ 2023-05-15 14:30 ` Rob Clark
2023-05-21 0:03 ` [PATCH v4 0/9] drm: fdinfo memory stats Dmitry Baryshkov
2023-05-24 16:10 ` (subset) " Neil Armstrong
2 siblings, 0 replies; 6+ messages in thread
From: Rob Clark @ 2023-05-15 14:30 UTC (permalink / raw)
To: dri-devel
Cc: Pan, Xinhui, 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, Marek Olšák, Tvrtko Ursulin,
Tvrtko Ursulin, Jim Cromie, Peter Maucher, Emil Velikov,
Christopher Healy, Boris Brezillon, Daniel Vetter, Alex Deucher,
freedreno, Christian König
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
@@ -2745,21 +2745,21 @@ static const struct file_operations amdgpu_driver_kms_fops = {
.flush = amdgpu_flush,
.release = drm_release,
.unlocked_ioctl = amdgpu_drm_ioctl,
.mmap = drm_gem_mmap,
.poll = drm_poll,
.read = drm_read,
#ifdef CONFIG_COMPAT
.compat_ioctl = amdgpu_kms_compat_ioctl,
#endif
#ifdef CONFIG_PROC_FS
- .show_fdinfo = amdgpu_show_fdinfo
+ .show_fdinfo = drm_show_fdinfo,
#endif
};
int amdgpu_file_to_fpriv(struct file *filp, struct amdgpu_fpriv **fpriv)
{
struct drm_file *file;
if (!filp)
return -EINVAL;
@@ -2800,20 +2800,21 @@ static const struct drm_driver amdgpu_kms_driver = {
DRIVER_SYNCOBJ_TIMELINE,
.open = amdgpu_driver_open_kms,
.postclose = amdgpu_driver_postclose_kms,
.lastclose = amdgpu_driver_lastclose_kms,
.ioctls = amdgpu_ioctls_kms,
.num_ioctls = ARRAY_SIZE(amdgpu_ioctls_kms),
.dumb_create = amdgpu_mode_dumb_create,
.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,
.gem_prime_import = amdgpu_gem_prime_import,
.gem_prime_mmap = drm_gem_prime_mmap,
.name = DRIVER_NAME,
.desc = DRIVER_DESC,
.date = DRIVER_DATE,
.major = KMS_DRIVER_MAJOR,
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
@@ -46,23 +46,22 @@ static const char *amdgpu_ip_name[AMDGPU_HW_IP_NUM] = {
[AMDGPU_HW_IP_COMPUTE] = "compute",
[AMDGPU_HW_IP_DMA] = "dma",
[AMDGPU_HW_IP_UVD] = "dec",
[AMDGPU_HW_IP_VCE] = "enc",
[AMDGPU_HW_IP_UVD_ENC] = "enc_1",
[AMDGPU_HW_IP_VCN_DEC] = "dec",
[AMDGPU_HW_IP_VCN_ENC] = "enc",
[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;
uint64_t vram_mem = 0, gtt_mem = 0, cpu_mem = 0;
ktime_t usage[AMDGPU_HW_IP_NUM];
uint32_t bus, dev, fn, domain;
unsigned int hw_ip;
int ret;
@@ -79,25 +78,22 @@ void amdgpu_show_fdinfo(struct seq_file *m, struct file *f)
amdgpu_bo_unreserve(vm->root.bo);
amdgpu_ctx_mgr_usage(&fpriv->ctx_mgr, usage);
/*
* ******************************************************************
* For text output format description please see drm-usage-stats.rst!
* ******************************************************************
*/
- 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
@@ -30,13 +30,13 @@
#include <linux/rbtree.h>
#include <drm/gpu_scheduler.h>
#include <drm/drm_file.h>
#include <linux/sched/mm.h>
#include "amdgpu_sync.h"
#include "amdgpu_ring.h"
#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.40.1
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v4 0/9] drm: fdinfo memory stats
2023-05-15 14:30 [PATCH v4 0/9] drm: fdinfo memory stats Rob Clark
2023-05-15 14:30 ` [PATCH v4 4/9] drm/amdgpu: Switch to fdinfo helper Rob Clark
@ 2023-05-21 0:03 ` Dmitry Baryshkov
2023-05-23 0:17 ` Dave Airlie
2023-05-24 16:10 ` (subset) " Neil Armstrong
2 siblings, 1 reply; 6+ messages in thread
From: Dmitry Baryshkov @ 2023-05-21 0:03 UTC (permalink / raw)
To: Rob Clark, dri-devel
Cc: open list:DOCUMENTATION, Akhil P Oommen, Lijo Lazar, open list,
Michel Dänzer, YiPeng Chai, Mario Limonciello, Rob Clark,
Guchun Chen, Shashank Sharma,
open list:RADEON and AMDGPU DRM DRIVERS, Chia-I Wu,
Arunpravin Paneer Selvam, open list:DRM DRIVER FOR MSM ADRENO GPU,
Sean Paul, Tvrtko Ursulin, Elliot Berman, Tvrtko Ursulin,
Jim Cromie, Maximilian Luz, Bjorn Andersson, Peter Maucher,
Emil Velikov, Christopher Healy, Konrad Dybcio, Boris Brezillon,
Daniel Vetter, Alex Deucher, freedreno, Christian König
On 15/05/2023 17:30, Rob Clark wrote:
> 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()
> v3: Docs fixes
> v4: use u64 for drm_memory_stats, small docs update and collected
> Tvrtko's a-b
>
> [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 | 101 ++++++++++----
> 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 | 51 +++++++
> include/drm/drm_gem.h | 32 +++++
> 13 files changed, 378 insertions(+), 47 deletions(-)
What is the expected merge plan for this series? msm-next? drm-misc?
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: (subset) [PATCH v4 0/9] drm: fdinfo memory stats
2023-05-15 14:30 [PATCH v4 0/9] drm: fdinfo memory stats Rob Clark
2023-05-15 14:30 ` [PATCH v4 4/9] drm/amdgpu: Switch to fdinfo helper Rob Clark
2023-05-21 0:03 ` [PATCH v4 0/9] drm: fdinfo memory stats Dmitry Baryshkov
@ 2023-05-24 16:10 ` Neil Armstrong
2023-05-24 16:11 ` Neil Armstrong
2 siblings, 1 reply; 6+ messages in thread
From: Neil Armstrong @ 2023-05-24 16:10 UTC (permalink / raw)
To: dri-devel, Rob Clark
Cc: linux-doc, Akhil P Oommen, Lijo Lazar, linux-kernel,
Michel Dänzer, YiPeng Chai, Mario Limonciello, Rob Clark,
Guchun Chen, Shashank Sharma, amd-gfx, Chia-I Wu,
Arunpravin Paneer Selvam, linux-arm-msm, Alex Deucher, Sean Paul,
Tvrtko Ursulin, Elliot Berman, Tvrtko Ursulin, Jim Cromie,
Maximilian Luz, Bjorn Andersson, Peter Maucher, Emil Velikov,
Christopher Healy, Konrad Dybcio, Boris Brezillon, Daniel Vetter,
Dmitry Baryshkov, freedreno, Christian König
Hi,
On Mon, 15 May 2023 07:30:07 -0700, Rob Clark wrote:
> 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
>
> [...]
Thanks, Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)
[1/9] drm/docs: Fix usage stats typos
https://cgit.freedesktop.org/drm/drm-misc/commit/?id=0020582a8afe9a8570f80ec503c59bf049a616de
[2/9] drm: Add common fdinfo helper
https://cgit.freedesktop.org/drm/drm-misc/commit/?id=3f09a0cd4ea3b9d34495450d686227d48e7ec648
[3/9] drm/msm: Switch to fdinfo helper
https://cgit.freedesktop.org/drm/drm-misc/commit/?id=51d86ee5e07ccef85af04ee9850b0baa107999b6
[4/9] drm/amdgpu: Switch to fdinfo helper
https://cgit.freedesktop.org/drm/drm-misc/commit/?id=376c25f8ca47084c4f0aff0f14684780756ccef4
[5/9] drm: Add fdinfo memory stats
https://cgit.freedesktop.org/drm/drm-misc/commit/?id=686b21b5f6ca2f8a716f9a4ade07246dbfb2713e
[6/9] drm/msm: Add memory stats to fdinfo
https://cgit.freedesktop.org/drm/drm-misc/commit/?id=3e9757f5ddb98238226ad68a1609aa313de35adb
[7/9] drm/doc: Relax fdinfo string constraints
https://cgit.freedesktop.org/drm/drm-misc/commit/?id=90d63a150b85fd1debb9c01237fb78faee02746a
--
Neil
^ permalink raw reply [flat|nested] 6+ messages in thread