[RFC 5/5] drm/amdgpu: Only show VRAM in fdinfo if it exists

Tvrtko Ursulin tvrtko.ursulin at igalia.com
Fri May 3 14:01:09 UTC 2024


On 03/05/2024 14:47, Alex Deucher wrote:
> On Fri, May 3, 2024 at 3:50 AM Tvrtko Ursulin <tvrtko.ursulin at igalia.com> wrote:
>>
>>
>> On 02/05/2024 14:16, Christian König wrote:
>>> Am 30.04.24 um 19:27 schrieb Tvrtko Ursulin:
>>>> From: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
>>>>
>>>> Do not emit the key-value pairs if the VRAM does not exist ie. VRAM
>>>> placement is not valid and accessible.
>>>
>>> Yeah, that's unfortunately rather misleading.
>>>
>>> Even APUs have VRAM or rather stolen system memory which is managed by
>>> the graphics driver.
>>>
>>> We only have a single compute model which really doesn't have VRAM at all.
>>
>> Hm what is misleading and how more precisely? :) Maybe in other words,
>> if is_app_apu is not the right criteria to know when TTM_PL_VRAM is
>> impossible, what is? Is the compute model you mentio the only thing
>> which sets is_app_apu and uses the dummy vram manager?
> 
> Probably better to check if adev->gmc.real_vram_size is non-0.

Hmm "real VRAM" - will that handle APUs correctly?

I am looking at this:

	if (!adev->gmc.is_app_apu) {
		man->func = &amdgpu_vram_mgr_func;

		err = drm_buddy_init(&mgr->mm, man->size, PAGE_SIZE);
		if (err)
			return err;
	} else {
		man->func = &amdgpu_dummy_vram_mgr_func;
		DRM_INFO("Setup dummy vram mgr\n");
	}

And assuming that unless the dummy manager is used, TTM_PL_VRAM will be 
valid. Wrong assumption?

Regards,

Tvrtko


> Alex
> 
>>
>> Regards,
>>
>> Tvrtko
>>
>>> Regards,
>>> Christian.
>>>
>>>>
>>>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
>>>> ---
>>>>    drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c | 29 +++++++++++++---------
>>>>    1 file changed, 17 insertions(+), 12 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c
>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c
>>>> index a09944104c41..603a5c010f5d 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c
>>>> @@ -83,25 +83,30 @@ 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);
>>>> -    drm_printf(p, "amd-memory-visible-vram:\t%llu KiB\n",
>>>> -           stats.visible_vram/1024UL);
>>>> -    drm_printf(p, "amd-evicted-vram:\t%llu KiB\n",
>>>> -           stats.evicted_vram/1024UL);
>>>> -    drm_printf(p, "amd-evicted-visible-vram:\t%llu KiB\n",
>>>> -           stats.evicted_visible_vram/1024UL);
>>>> -    drm_printf(p, "amd-requested-vram:\t%llu KiB\n",
>>>> -           stats.requested_vram/1024UL);
>>>> -    drm_printf(p, "amd-requested-visible-vram:\t%llu KiB\n",
>>>> -           stats.requested_visible_vram/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);
>>>> +    if (!adev->gmc.is_app_apu) {
>>>> +        drm_printf(p, "drm-memory-vram:\t%llu KiB\n",
>>>> +               stats.vram/1024UL);
>>>> +        drm_printf(p, "amd-memory-visible-vram:\t%llu KiB\n",
>>>> +               stats.visible_vram/1024UL);
>>>> +        drm_printf(p, "amd-evicted-vram:\t%llu KiB\n",
>>>> +               stats.evicted_vram/1024UL);
>>>> +        drm_printf(p, "amd-evicted-visible-vram:\t%llu KiB\n",
>>>> +               stats.evicted_visible_vram/1024UL);
>>>> +        drm_printf(p, "amd-requested-vram:\t%llu KiB\n",
>>>> +               stats.requested_vram/1024UL);
>>>> +        drm_printf(p, "amd-requested-visible-vram:\t%llu KiB\n",
>>>> +               stats.requested_visible_vram/1024UL);
>>>> +        drm_printf(p, "drm-shared-vram:\t%llu KiB\n",
>>>> +               stats.vram_shared/1024UL);
>>>> +    }
>>>> +
>>>>        for (hw_ip = 0; hw_ip < AMDGPU_HW_IP_NUM; ++hw_ip) {
>>>>            if (!usage[hw_ip])
>>>>                continue;
>>>


More information about the amd-gfx mailing list