[PATCH v2 2/3] drm/amd: Move evict resources suspend step to prepare()
Mario Limonciello
mario.limonciello at amd.com
Tue Oct 3 16:31:44 UTC 2023
On 10/3/2023 07:58, Deucher, Alexander wrote:
> [AMD Official Use Only - General]
>
>> -----Original Message-----
>> From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Mario
>> Limonciello
>> Sent: Monday, October 2, 2023 6:45 PM
>> To: amd-gfx at lists.freedesktop.org
>> Cc: Wentland, Harry <Harry.Wentland at amd.com>; Limonciello, Mario
>> <Mario.Limonciello at amd.com>
>> Subject: [PATCH v2 2/3] drm/amd: Move evict resources suspend step to
>> prepare()
>>
>> If the system is under high memory pressure, the resources may need to be
>> evicted into swap instead. If the storage backing for swap is offlined during
>> the suspend() step then such a call may fail.
>>
>> So instead move this step into prepare(), while leaving all other steps that put
>> the GPU into a low power state in suspend().
>>
>> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2362
>> Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>
>> ---
>> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 12 +++++-------
>> 1 file changed, 5 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> index c41d69e7a8f5..bb0e753fb6f8 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> @@ -4276,6 +4276,11 @@ int amdgpu_device_prepare(struct drm_device
>> *dev)
>> if (dev->switch_power_state == DRM_SWITCH_POWER_OFF)
>> return 0;
>>
>> + /* Evict the majority of BOs before grabbing the full access */
>> + r = amdgpu_device_evict_resources(adev);
>> + if (r)
>> + return r;
>> +
>> return 0;
>> }
>>
>> @@ -4297,13 +4302,6 @@ int amdgpu_device_suspend(struct drm_device
>> *dev, bool fbcon)
>> if (dev->switch_power_state == DRM_SWITCH_POWER_OFF)
>> return 0;
>>
>> - adev->in_suspend = true;
>
> This shouldn't be dropped.
>
Thanks - that was a mistake when I was rebasing it. I'll respin with a fix.
> Alex
>
>> -
>> - /* Evict the majority of BOs before grabbing the full access */
>> - r = amdgpu_device_evict_resources(adev);
>> - if (r)
>> - return r;
>> -
>> if (amdgpu_sriov_vf(adev)) {
>> amdgpu_virt_fini_data_exchange(adev);
>> r = amdgpu_virt_request_full_gpu(adev, false);
>> --
>> 2.34.1
>
More information about the amd-gfx
mailing list