Re: [PATCH] drm/amdgpu: validate the flush_gpu_tlb_pasid()
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()
[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()
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()
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()
[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
