[PATCH] drm/amdgpu: Do not evict VRAM on APUs with disabled HIBERNATE
Paul Menzel
pmenzel+amd-gfx at molgen.mpg.de
Wed Aug 1 07:11:42 UTC 2018
Dear Rui,
Am 01.08.2018 um 09:03 schrieb Huang Rui:
> On Tue, Jul 31, 2018 at 06:46:04PM +0200, Paul Menzel wrote:
>> From: Paul Menzel <pmenzel at molgen.mpg.de>
>> Date: Wed, 25 Jul 2018 12:54:19 +0200
>>
>> Improve commit d796d844 (drm/radeon/kms: make hibernate work on IGPs) to
>> only migrate VRAM objects if the Linux kernel is actually built with
>> support for hibernation (suspend to disk).
>>
>> The better solution is to get the information, if this is suspend or
>> hibernate, from `amdgpu_device_suspend()`, but that’s more involved, so
>> apply the simple solution first.
>>
>> Link: https://bugs.freedesktop.org/show_bug.cgi?id=107277
>> Cc: stable at vger.kernel.org
>> Signed-off-by: Paul Menzel <pmenzel at molgen.mpg.de>
>> ---
>> drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>> index 3526efa8960e..a27a62980bb7 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
>> @@ -811,10 +811,12 @@ int amdgpu_bo_unpin(struct amdgpu_bo *bo)
>> int amdgpu_bo_evict_vram(struct amdgpu_device *adev)
>> {
>> /* late 2.6.33 fix IGP hibernate - we need pm ops to do this correct */
>> - if (0 && (adev->flags & AMD_IS_APU)) {
>> +#ifndef CONFIG_HIBERNATION
>> + if (adev->flags & AMD_IS_APU) {
>> /* Useless to evict on IGP chips */
>> return 0;
>> }
>> +#endif
>
> Actually, when system enters into suspend, the vram will be cleared
> (because of poweroff), so we need to evict them into system memory before
> that. However, in APU, the vram is actually carved out from system memory,
> so we needn't evict them in theory.
>
> Whatever hibernation or suspend, we actually follow the process. I don't
> see the usage that you added CONFIG_HIBERNATION here. Alex, what do you
> think?
Please note the *0* in the if condition, that is removed.
>> return ttm_bo_evict_mm(&adev->mman.bdev, TTM_PL_VRAM);
>> }
>>
>> --
>> 2.17.1
Kind regards,
Paul
More information about the amd-gfx
mailing list