RE: [PATCH 2/2] drm/amdgpu: Use the default reset when loading amdgpu driver

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

 



[AMD Official Use Only - General]

Most asic using mode1 as default, some not. Could check here: soc21_asic_reset_method()/nv_asic_reset_method()
Patch is using default reset method. 

Thanks,
Feifei

-----Original Message-----
From: Li, Lyndon <Lyndon.Li@xxxxxxx> 
Sent: Monday, April 24, 2023 4:01 PM
To: Xu, Feifei <Feifei.Xu@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx
Cc: Liu, Shaoyun <Shaoyun.Liu@xxxxxxx>; Zhao, Victor <Victor.Zhao@xxxxxxx>; Feng, Kenneth <Kenneth.Feng@xxxxxxx>; Li, Yunxiang (Teddy) <Yunxiang.Li@xxxxxxx>
Subject: RE: [PATCH 2/2] drm/amdgpu: Use the default reset when loading amdgpu driver

[AMD Official Use Only - General]

Hi Feifei,

Thanks for your feedback. Will add comments inside and modify commit messages.
I think you are a little misunderstood.

It should do a mode1 reset when loading or reloading the driver, regardless of the module parameter reset_method. 
It will call amdgpu_device_mode1_reset in amdgpu_asic_reset if amdgpu_reset_method is set to AMD_RESET_METHOD_NONE. 
Here's an example,
modprobe amdgpu
modprobe -r amdgpu
modprobe amdgpu reset_method=3 //The real reset method should be mode1 reset, since it is initialization.

Regards,
Lyndon

> -----Original Message-----
> From: Xu, Feifei <Feifei.Xu@xxxxxxx>
> Sent: Monday, April 24, 2023 2:00 PM
> To: Li, Lyndon <Lyndon.Li@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx
> Cc: Liu, Shaoyun <Shaoyun.Liu@xxxxxxx>; Zhao, Victor 
> <Victor.Zhao@xxxxxxx>; Feng, Kenneth <Kenneth.Feng@xxxxxxx>; Li, 
> Yunxiang (Teddy) <Yunxiang.Li@xxxxxxx>; Li, Lyndon <Lyndon.Li@xxxxxxx>
> Subject: RE: [PATCH 2/2] drm/amdgpu: Use the default reset when 
> loading amdgpu driver
> 
> [AMD Official Use Only - General]
> 
> I think you might be refer to : mod parameter reset_method will not 
> affect the loading driver code path. If loading driver, it should use 
> the default reset which might be mode1/mode2 or BACO instead of the specific mode2.
> 
> With the confusing commit msg corrected. And adding comment before the 
> code " r = amdgpu_asic_reset(adev);"
> 
> 
> 
> Reviewed-by: Feifei Xu <Feifei.Xu@xxxxxxx>
> 
> -----Original Message-----
> From: lyndonli <Lyndon.Li@xxxxxxx>
> Sent: Monday, April 24, 2023 9:58 AM
> To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx
> Cc: Liu, Shaoyun <Shaoyun.Liu@xxxxxxx>; Zhao, Victor 
> <Victor.Zhao@xxxxxxx>; Feng, Kenneth <Kenneth.Feng@xxxxxxx>; Xu, 
> Feifei <Feifei.Xu@xxxxxxx>; Li, Yunxiang (Teddy) 
> <Yunxiang.Li@xxxxxxx>; Li, Lyndon <Lyndon.Li@xxxxxxx>
> Subject: [PATCH 2/2] drm/amdgpu: Use the default reset when loading 
> amdgpu driver
> 
> Below call trace and errors are observed when reloading amdgpu driver 
> with the module parameter reset_method=3.
> 
> It should do a mode1 reset when loading the driver.
> 
> [  +2.180243] [drm] psp gfx command ID_LOAD_TOC(0x20) failed and 
> response status is (0x0) [  +0.000011] [drm:psp_hw_start [amdgpu]]
> *ERROR* Failed to load toc [  +0.000890] [drm:psp_hw_start [amdgpu]]
> *ERROR* PSP tmr init failed!
> [  +0.020683] [drm:amdgpu_fill_buffer [amdgpu]] *ERROR* Trying to 
> clear memory with ring turned off.
> [  +0.000003] RIP: 0010:amdgpu_bo_release_notify+0x1ef/0x210 [amdgpu] 
> [  +0.000004] Call Trace:
> [  +0.000003]  <TASK>
> [  +0.000008]  ttm_bo_release+0x2c4/0x330 [amdttm] [  +0.000026]
> amdttm_bo_put+0x3c/0x70 [amdttm] [  +0.000020]
> amdgpu_bo_free_kernel+0xe6/0x140 [amdgpu] [  +0.000728]
> psp_v11_0_ring_destroy+0x34/0x60 [amdgpu] [  +0.000826]
> psp_hw_init+0xe7/0x2f0 [amdgpu] [  +0.000813]
> amdgpu_device_fw_loading+0x1ad/0x2d0 [amdgpu] [  +0.000731]
> amdgpu_device_init.cold+0x108e/0x2002 [amdgpu] [  +0.001071]  ?
> do_pci_enable_device+0xe1/0x110 [  +0.000011]
> amdgpu_driver_load_kms+0x1a/0x160 [amdgpu] [  +0.000729]
> amdgpu_pci_probe+0x179/0x3a0 [amdgpu]
> 
> Signed-off-by: lyndonli <Lyndon.Li@xxxxxxx>
> Signed-off-by: Yunxiang Li <Yunxiang.Li@xxxxxxx>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index e536886f6d42..9738e3660cf1 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -3578,6 +3578,7 @@ int amdgpu_device_init(struct amdgpu_device 
> *adev,
>  	int r, i;
>  	bool px = false;
>  	u32 max_MBps;
> +	int tmp;
> 
>  	adev->shutdown = false;
>  	adev->flags = flags;
> @@ -3799,7 +3800,10 @@ int amdgpu_device_init(struct amdgpu_device 
> *adev,
>  				}
>  			}
>  		} else {
> +			tmp = amdgpu_reset_method;
> +			amdgpu_reset_method =
> AMD_RESET_METHOD_NONE;
>  			r = amdgpu_asic_reset(adev);
> +			amdgpu_reset_method = tmp;
>  			if (r) {
>  				dev_err(adev->dev, "asic reset on init failed\n");
>  				goto failed;
> --
> 2.34.1




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

  Powered by Linux