Re: [PATCH 1/2] drm/amdgpu: prevent memory wipe in suspend/shutdown stage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Try installing the linuxsty vim pluging. It should give you the correct coding style setting for vim.

I'm using it for years and can only recommend it.

Regards,
Christian.

Am 15.03.22 um 08:49 schrieb Chen, Guchun:
I used two tabs in VIM. Let me update this later.

Regards,
Guchun

-----Original Message-----
From: Koenig, Christian <Christian.Koenig@xxxxxxx>
Sent: Tuesday, March 15, 2022 3:35 PM
To: Chen, Guchun <Guchun.Chen@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx; Zhang, Hawking <Hawking.Zhang@xxxxxxx>; Pan, Xinhui <Xinhui.Pan@xxxxxxx>; Deucher, Alexander <Alexander.Deucher@xxxxxxx>
Subject: Re: [PATCH 1/2] drm/amdgpu: prevent memory wipe in suspend/shutdown stage



Am 15.03.22 um 08:09 schrieb Guchun Chen:
On GPUs with RAS enabled, below call trace is observed when suspending
or shutting down device. The cause is we have enabled memory wipe flag
for BOs on such GPUs by default, and such BOs will go to memory wipe
by amdgpu_fill_buffer, however, because ring is off already, it fails
to clean up the memory and throw this error message. So add a
suspend/shutdown check before wipping memory.

[drm:amdgpu_fill_buffer [amdgpu]] *ERROR* Trying to clear memory with ring turned off.

Fixes: e7e7c87a205d("drm/amdgpu: Wipe all VRAM on free when RAS is
enabled")
Signed-off-by: Guchun Chen <guchun.chen@xxxxxxx>
Just one nit below, but the patch is anyway Reviewed-by: Christian König <christian.koenig@xxxxxxx>.

---
   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 23c9a60693ee..ed1a19be4a54 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
@@ -1284,6 +1284,7 @@ void amdgpu_bo_get_memory(struct amdgpu_bo *bo, uint64_t *vram_mem,
    */
   void amdgpu_bo_release_notify(struct ttm_buffer_object *bo)
   {
+	struct amdgpu_device *adev = amdgpu_ttm_adev(bo->bdev);
   	struct dma_fence *fence = NULL;
   	struct amdgpu_bo *abo;
   	int r;
@@ -1303,7 +1304,8 @@ void amdgpu_bo_release_notify(struct ttm_buffer_object *bo)
   		amdgpu_amdkfd_remove_fence_on_pt_pd_bos(abo);
if (bo->resource->mem_type != TTM_PL_VRAM ||
-	    !(abo->flags & AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE))
+		!(abo->flags & AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE) ||
+		adev->in_suspend || adev->shutdown)
What editor and settings are you using?

When you have a multi-line condition to an if the next line should start after the ( of the previous line, but this here is using two tabs instead.

Regards,
Christian.

   		return;
if (WARN_ON_ONCE(!dma_resv_trylock(bo->base.resv)))




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux