I have no objection to the change. It restores the sequence that was
used before e9669fb78262. But I don't understand why GFX_OFF is causing
a preemption error during module unload, but not when KFD is in normal
use. Maybe it's because of the compute power profile that's normally set
by amdgpu_amdkfd_set_compute_idle before we interact with the HWS.
Either way, the patch is
Acked-by: Felix Kuehling <Felix.Kuehling@xxxxxxx>
Am 2022-01-25 um 05:48 schrieb Wang, Yang(Kevin):
[AMD Official Use Only]
[AMD Official Use Only]
the issue is introduced in following patch, so add following
information is better.
/fixes: (e9669fb78262) drm/amdgpu: Add early fini callback/
/
/
Reviewed-by: Yang Wang <kevinyang.wang@xxxxxxx>
/
/
Best Regards,
Kevin
------------------------------------------------------------------------
*From:* amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> on behalf of
Tianci Yin <tianci.yin@xxxxxxx>
*Sent:* Tuesday, January 25, 2022 6:03 PM
*To:* amd-gfx@xxxxxxxxxxxxxxxxxxxxx <amd-gfx@xxxxxxxxxxxxxxxxxxxxx>
*Cc:* Grodzovsky, Andrey <Andrey.Grodzovsky@xxxxxxx>; Yin, Tianci
(Rico) <Tianci.Yin@xxxxxxx>; Chen, Guchun <Guchun.Chen@xxxxxxx>
*Subject:* [PATCH] drm/amdgpu: Fix an error message in rmmod
From: "Tianci.Yin" <tianci.yin@xxxxxxx>
[why]
In rmmod procedure, kfd sends cp a dequeue request, but the
request does not get response, then an error message "cp
queue pipe 4 queue 0 preemption failed" printed.
[how]
Performing kfd suspending after disabling gfxoff can fix it.
Change-Id: I0453f28820542d4a5ab26e38fb5b87ed76ce6930
Signed-off-by: Tianci.Yin <tianci.yin@xxxxxxx>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index b75d67f644e5..77e9837ba342 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2720,11 +2720,11 @@ static int amdgpu_device_ip_fini_early(struct
amdgpu_device *adev)
}
}
- amdgpu_amdkfd_suspend(adev, false);
-
amdgpu_device_set_pg_state(adev, AMD_PG_STATE_UNGATE);
amdgpu_device_set_cg_state(adev, AMD_CG_STATE_UNGATE);
+ amdgpu_amdkfd_suspend(adev, false);
+
/* Workaroud for ASICs need to disable SMC first */
amdgpu_device_smu_fini_early(adev);
--
2.25.1