mirror of
https://github.com/torvalds/linux.git
synced 2026-05-05 06:52:34 -04:00
drm/amdgpu: Use drm_print_memory_stats helper from fdinfo
Convert fdinfo memory stats to use the common drm_print_memory_stats helper. This achieves alignment with the common keys as documented in drm-usage-stats.rst, adding specifically drm-total- key the driver was missing until now. Additionally I made the code stop skipping total size for objects which currently do not have a backing store, and I added resident, active and purgeable reporting. Legacy keys have been preserved, with the outlook of only potentially removing only the drm-memory- when the time gets right. The example output now looks like this: pos: 0 flags: 02100002 mnt_id: 24 ino: 1239 drm-driver: amdgpu drm-client-id: 4 drm-pdev: 0000:04:00.0 pasid: 32771 drm-total-cpu: 0 drm-shared-cpu: 0 drm-active-cpu: 0 drm-resident-cpu: 0 drm-purgeable-cpu: 0 drm-total-gtt: 2392 KiB drm-shared-gtt: 0 drm-active-gtt: 0 drm-resident-gtt: 2392 KiB drm-purgeable-gtt: 0 drm-total-vram: 44564 KiB drm-shared-vram: 31952 KiB drm-active-vram: 0 drm-resident-vram: 44564 KiB drm-purgeable-vram: 0 drm-memory-vram: 44564 KiB drm-memory-gtt: 2392 KiB drm-memory-cpu: 0 KiB amd-memory-visible-vram: 44564 KiB amd-evicted-vram: 0 KiB amd-evicted-visible-vram: 0 KiB amd-requested-vram: 44564 KiB amd-requested-visible-vram: 11952 KiB amd-requested-gtt: 2392 KiB drm-engine-compute: 46464671 ns v2: * Track purgeable via AMDGPU_GEM_CREATE_DISCARDABLE. Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com> Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Christian König <christian.koenig@amd.com> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Rob Clark <robdclark@chromium.org> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
fc282e9e86
commit
04bdba4654
@@ -59,18 +59,21 @@ void amdgpu_show_fdinfo(struct drm_printer *p, struct drm_file *file)
|
||||
struct amdgpu_fpriv *fpriv = file->driver_priv;
|
||||
struct amdgpu_vm *vm = &fpriv->vm;
|
||||
|
||||
struct amdgpu_mem_stats stats;
|
||||
struct amdgpu_mem_stats stats[__AMDGPU_PL_LAST + 1] = { };
|
||||
ktime_t usage[AMDGPU_HW_IP_NUM];
|
||||
unsigned int hw_ip;
|
||||
const char *pl_name[] = {
|
||||
[TTM_PL_VRAM] = "vram",
|
||||
[TTM_PL_TT] = "gtt",
|
||||
[TTM_PL_SYSTEM] = "cpu",
|
||||
};
|
||||
unsigned int hw_ip, i;
|
||||
int ret;
|
||||
|
||||
memset(&stats, 0, sizeof(stats));
|
||||
|
||||
ret = amdgpu_bo_reserve(vm->root.bo, false);
|
||||
if (ret)
|
||||
return;
|
||||
|
||||
amdgpu_vm_get_memory(vm, &stats);
|
||||
amdgpu_vm_get_memory(vm, stats, ARRAY_SIZE(stats));
|
||||
amdgpu_bo_unreserve(vm->root.bo);
|
||||
|
||||
amdgpu_ctx_mgr_usage(&fpriv->ctx_mgr, usage);
|
||||
@@ -82,24 +85,35 @@ void amdgpu_show_fdinfo(struct drm_printer *p, struct drm_file *file)
|
||||
*/
|
||||
|
||||
drm_printf(p, "pasid:\t%u\n", fpriv->vm.pasid);
|
||||
drm_printf(p, "drm-memory-vram:\t%llu KiB\n", stats.vram/1024UL);
|
||||
drm_printf(p, "drm-memory-gtt: \t%llu KiB\n", stats.gtt/1024UL);
|
||||
drm_printf(p, "drm-memory-cpu: \t%llu KiB\n", stats.cpu/1024UL);
|
||||
|
||||
for (i = 0; i < TTM_PL_PRIV; i++)
|
||||
drm_print_memory_stats(p,
|
||||
&stats[i].drm,
|
||||
DRM_GEM_OBJECT_RESIDENT |
|
||||
DRM_GEM_OBJECT_PURGEABLE,
|
||||
pl_name[i]);
|
||||
|
||||
/* Legacy amdgpu keys, alias to drm-resident-memory-: */
|
||||
drm_printf(p, "drm-memory-vram:\t%llu KiB\n",
|
||||
stats[TTM_PL_VRAM].total/1024UL);
|
||||
drm_printf(p, "drm-memory-gtt: \t%llu KiB\n",
|
||||
stats[TTM_PL_TT].total/1024UL);
|
||||
drm_printf(p, "drm-memory-cpu: \t%llu KiB\n",
|
||||
stats[TTM_PL_SYSTEM].total/1024UL);
|
||||
|
||||
/* Amdgpu specific memory accounting keys: */
|
||||
drm_printf(p, "amd-memory-visible-vram:\t%llu KiB\n",
|
||||
stats.visible_vram/1024UL);
|
||||
stats[TTM_PL_VRAM].visible/1024UL);
|
||||
drm_printf(p, "amd-evicted-vram:\t%llu KiB\n",
|
||||
stats.evicted_vram/1024UL);
|
||||
stats[TTM_PL_VRAM].evicted/1024UL);
|
||||
drm_printf(p, "amd-evicted-visible-vram:\t%llu KiB\n",
|
||||
stats.evicted_visible_vram/1024UL);
|
||||
stats[TTM_PL_VRAM].evicted_visible/1024UL);
|
||||
drm_printf(p, "amd-requested-vram:\t%llu KiB\n",
|
||||
stats.requested_vram/1024UL);
|
||||
stats[TTM_PL_VRAM].requested/1024UL);
|
||||
drm_printf(p, "amd-requested-visible-vram:\t%llu KiB\n",
|
||||
stats.requested_visible_vram/1024UL);
|
||||
stats[TTM_PL_VRAM].requested_visible/1024UL);
|
||||
drm_printf(p, "amd-requested-gtt:\t%llu KiB\n",
|
||||
stats.requested_gtt/1024UL);
|
||||
drm_printf(p, "drm-shared-vram:\t%llu KiB\n", stats.vram_shared/1024UL);
|
||||
drm_printf(p, "drm-shared-gtt:\t%llu KiB\n", stats.gtt_shared/1024UL);
|
||||
drm_printf(p, "drm-shared-cpu:\t%llu KiB\n", stats.cpu_shared/1024UL);
|
||||
stats[TTM_PL_TT].requested/1024UL);
|
||||
|
||||
for (hw_ip = 0; hw_ip < AMDGPU_HW_IP_NUM; ++hw_ip) {
|
||||
if (!usage[hw_ip])
|
||||
|
||||
Reference in New Issue
Block a user