Re: [PATCH] drm/amdgpu: validate the flush_gpu_tlb_pasid()

2026-01-08 Thread Christian König
On 1/8/26 13:54, Liang, Prike wrote:
> [Public]
> 
> Hi Alex
> 
> This patch should fix the TLB flush support issue on the older GFX.
> Do you think we should revert the following change to clean up the VM layer 
> flush quirk?

Yeah, agree. The patch below is much cleaner than this quirk.

Regards,
Christian.

> 
> https://lists.freedesktop.org/archives/amd-gfx/2025-December/134959.html
> 
> Regards,
>   Prike
> 
>> -Original Message-
>> From: Koenig, Christian 
>> Sent: Thursday, January 8, 2026 8:44 PM
>> To: Liang, Prike ; [email protected]
>> Cc: Deucher, Alexander 
>> Subject: Re: [PATCH] drm/amdgpu: validate the flush_gpu_tlb_pasid()
>>
>> On 1/6/26 14:19, Prike Liang wrote:
>>> Validate flush_gpu_tlb_pasid() availability before flushing tlb.
>>>
>>> Signed-off-by: Prike Liang 
>>
>> Reviewed-by: Christian König 
>>
>>> ---
>>>  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 4 
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
>>> index cd4acc6adc9e..f871f1693483 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
>>> @@ -780,6 +780,10 @@ int amdgpu_gmc_flush_gpu_tlb_pasid(struct
>> amdgpu_device *adev, uint16_t pasid,
>>> return 0;
>>>
>>> if (!adev->gmc.flush_pasid_uses_kiq || !ring->sched.ready) {
>>> +
>>> +   if (!adev->gmc.gmc_funcs->flush_gpu_tlb_pasid)
>>> +   return 0;
>>> +
>>> if (adev->gmc.flush_tlb_needs_extra_type_2)
>>> adev->gmc.gmc_funcs->flush_gpu_tlb_pasid(adev, pasid,
>>>  2, all_hub,
> 



RE: [PATCH] drm/amdgpu: validate the flush_gpu_tlb_pasid()

2026-01-08 Thread Liang, Prike
[Public]

Hi Alex

This patch should fix the TLB flush support issue on the older GFX.
Do you think we should revert the following change to clean up the VM layer 
flush quirk?

https://lists.freedesktop.org/archives/amd-gfx/2025-December/134959.html

Regards,
  Prike

> -Original Message-
> From: Koenig, Christian 
> Sent: Thursday, January 8, 2026 8:44 PM
> To: Liang, Prike ; [email protected]
> Cc: Deucher, Alexander 
> Subject: Re: [PATCH] drm/amdgpu: validate the flush_gpu_tlb_pasid()
>
> On 1/6/26 14:19, Prike Liang wrote:
> > Validate flush_gpu_tlb_pasid() availability before flushing tlb.
> >
> > Signed-off-by: Prike Liang 
>
> Reviewed-by: Christian König 
>
> > ---
> >  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 4 
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> > index cd4acc6adc9e..f871f1693483 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> > @@ -780,6 +780,10 @@ int amdgpu_gmc_flush_gpu_tlb_pasid(struct
> amdgpu_device *adev, uint16_t pasid,
> > return 0;
> >
> > if (!adev->gmc.flush_pasid_uses_kiq || !ring->sched.ready) {
> > +
> > +   if (!adev->gmc.gmc_funcs->flush_gpu_tlb_pasid)
> > +   return 0;
> > +
> > if (adev->gmc.flush_tlb_needs_extra_type_2)
> > adev->gmc.gmc_funcs->flush_gpu_tlb_pasid(adev, pasid,
> >  2, all_hub,



Re: [PATCH] drm/amdgpu: validate the flush_gpu_tlb_pasid()

2026-01-08 Thread Christian König
On 1/6/26 14:19, Prike Liang wrote:
> Validate flush_gpu_tlb_pasid() availability before flushing tlb.
> 
> Signed-off-by: Prike Liang 

Reviewed-by: Christian König 

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 4 
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> index cd4acc6adc9e..f871f1693483 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> @@ -780,6 +780,10 @@ int amdgpu_gmc_flush_gpu_tlb_pasid(struct amdgpu_device 
> *adev, uint16_t pasid,
>   return 0;
>  
>   if (!adev->gmc.flush_pasid_uses_kiq || !ring->sched.ready) {
> +
> + if (!adev->gmc.gmc_funcs->flush_gpu_tlb_pasid)
> + return 0;
> +
>   if (adev->gmc.flush_tlb_needs_extra_type_2)
>   adev->gmc.gmc_funcs->flush_gpu_tlb_pasid(adev, pasid,
>2, all_hub,



Re: [PATCH] drm/amdgpu: validate the flush_gpu_tlb_pasid()

2026-01-07 Thread Jean Philippe EIMER
Since 6.17.11 and 6.18.1, the patch 'attach tlb fence to the PTs update' 
(commit b4a7f4e7ad2b120a94f3111f92a11520052c762d) provoked a kernel 
crash on my system with an AMD SI graphic chip.


I confirm this 'validate the flush_gpu_tlb_pasid()' patch solves this issue.

J. Ph.

Le 07/01/2026 à 02:50, Liang, Prike a écrit :

[Public]

Add Jean

Regards,
   Prike


-Original Message-
From: Liang, Prike 
Sent: Tuesday, January 6, 2026 9:19 PM
To: [email protected]
Cc: Deucher, Alexander ; Koenig, Christian
; Liang, Prike 
Subject: [PATCH] drm/amdgpu: validate the flush_gpu_tlb_pasid()

Validate flush_gpu_tlb_pasid() availability before flushing tlb.

Signed-off-by: Prike Liang 
---
  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 4 
  1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
index cd4acc6adc9e..f871f1693483 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
@@ -780,6 +780,10 @@ int amdgpu_gmc_flush_gpu_tlb_pasid(struct
amdgpu_device *adev, uint16_t pasid,
   return 0;

   if (!adev->gmc.flush_pasid_uses_kiq || !ring->sched.ready) {
+
+ if (!adev->gmc.gmc_funcs->flush_gpu_tlb_pasid)
+ return 0;
+
   if (adev->gmc.flush_tlb_needs_extra_type_2)
   adev->gmc.gmc_funcs->flush_gpu_tlb_pasid(adev, pasid,
2, all_hub,
--
2.34.1




RE: [PATCH] drm/amdgpu: validate the flush_gpu_tlb_pasid()

2026-01-06 Thread Liang, Prike
[Public]

Add Jean

Regards,
  Prike

> -Original Message-
> From: Liang, Prike 
> Sent: Tuesday, January 6, 2026 9:19 PM
> To: [email protected]
> Cc: Deucher, Alexander ; Koenig, Christian
> ; Liang, Prike 
> Subject: [PATCH] drm/amdgpu: validate the flush_gpu_tlb_pasid()
>
> Validate flush_gpu_tlb_pasid() availability before flushing tlb.
>
> Signed-off-by: Prike Liang 
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 4 
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> index cd4acc6adc9e..f871f1693483 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> @@ -780,6 +780,10 @@ int amdgpu_gmc_flush_gpu_tlb_pasid(struct
> amdgpu_device *adev, uint16_t pasid,
>   return 0;
>
>   if (!adev->gmc.flush_pasid_uses_kiq || !ring->sched.ready) {
> +
> + if (!adev->gmc.gmc_funcs->flush_gpu_tlb_pasid)
> + return 0;
> +
>   if (adev->gmc.flush_tlb_needs_extra_type_2)
>   adev->gmc.gmc_funcs->flush_gpu_tlb_pasid(adev, pasid,
>2, all_hub,
> --
> 2.34.1