[PATCH] drm/amdkfd: fix address watch clearing bug for gfx v9.4.2

Eric Huang jinhuieric.huang at amd.com
Thu Aug 10 21:26:58 UTC 2023


Yes. I will send out the fix for gc v9.4.3 later. Thanks for your review.

Eric

On 2023-08-10 17:02, Felix Kuehling wrote:
> I think amdgpu_amdkfd_gc_9_4_3.c needs a similar fix. But maybe a bit 
> different because it needs to support multiple XCCs.
>
> That said, this patch is
>
> Reviewed-by: Felix Kuehling <Felix.Kuehling at amd.com>
>
>
> On 2023-08-10 16:47, Eric Huang wrote:
>> KFD currently relies on MEC FW to clear tcp watch control
>> register by sending MAP_PROCESS packet with 0 of field
>> tcp_watch_cntl to HWS, but if the queue is suspended, the
>> packet will not be sent and the previous value will be
>> left on the register, that will affect the following apps.
>> So the solution is to clear the register as gfx v9 in KFD.
>>
>> Signed-off-by: Eric Huang <jinhuieric.huang at amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_aldebaran.c | 8 +-------
>>   1 file changed, 1 insertion(+), 7 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_aldebaran.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_aldebaran.c
>> index e2fed6edbdd0..aff08321e976 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_aldebaran.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_aldebaran.c
>> @@ -163,12 +163,6 @@ static uint32_t 
>> kgd_gfx_aldebaran_set_address_watch(
>>       return watch_address_cntl;
>>   }
>>   -static uint32_t kgd_gfx_aldebaran_clear_address_watch(struct 
>> amdgpu_device *adev,
>> -                              uint32_t watch_id)
>> -{
>> -    return 0;
>> -}
>> -
>>   const struct kfd2kgd_calls aldebaran_kfd2kgd = {
>>       .program_sh_mem_settings = kgd_gfx_v9_program_sh_mem_settings,
>>       .set_pasid_vmid_mapping = kgd_gfx_v9_set_pasid_vmid_mapping,
>> @@ -193,7 +187,7 @@ const struct kfd2kgd_calls aldebaran_kfd2kgd = {
>>       .set_wave_launch_trap_override = 
>> kgd_aldebaran_set_wave_launch_trap_override,
>>       .set_wave_launch_mode = kgd_aldebaran_set_wave_launch_mode,
>>       .set_address_watch = kgd_gfx_aldebaran_set_address_watch,
>> -    .clear_address_watch = kgd_gfx_aldebaran_clear_address_watch,
>> +    .clear_address_watch = kgd_gfx_v9_clear_address_watch,
>>       .get_iq_wait_times = kgd_gfx_v9_get_iq_wait_times,
>>       .build_grace_period_packet_info = 
>> kgd_gfx_v9_build_grace_period_packet_info,
>>       .program_trap_handler_settings = 
>> kgd_gfx_v9_program_trap_handler_settings,



More information about the amd-gfx mailing list