On 11/5/25 07:16, Prike Liang wrote: > The VM TLB sequence is incremented by the VM update > commit invoker, so it should not be increased again > in the commit callback.
Clear NAK to that. It must be incremented by *both*! Regards, Christian. > > Signed-off-by: Prike Liang <[email protected]> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c | 2 -- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c | 2 ++ > drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c | 3 --- > 3 files changed, 2 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c > index 0c1ef5850a5e..f7a5e71346df 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c > @@ -106,8 +106,6 @@ static int amdgpu_vm_cpu_update(struct > amdgpu_vm_update_params *p, > static int amdgpu_vm_cpu_commit(struct amdgpu_vm_update_params *p, > struct dma_fence **fence) > { > - if (p->needs_flush) > - atomic64_inc(&p->vm->tlb_seq); > > mb(); > amdgpu_device_flush_hdp(p->adev, NULL); > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c > index 30022123b0bf..869f9cb28d94 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c > @@ -420,6 +420,8 @@ int amdgpu_vm_pt_clear(struct amdgpu_device *adev, struct > amdgpu_vm *vm, > goto exit; > > r = vm->update_funcs->commit(¶ms, NULL); > + if (params.needs_flush) > + atomic64_inc(&vm->tlb_seq); > exit: > drm_dev_exit(idx); > return r; > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c > index 46d9fb433ab2..0ceb2474a721 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c > @@ -115,9 +115,6 @@ static int amdgpu_vm_sdma_commit(struct > amdgpu_vm_update_params *p, > WARN_ON(ib->length_dw == 0); > amdgpu_ring_pad_ib(ring, ib); > > - if (p->needs_flush) > - atomic64_inc(&p->vm->tlb_seq); > - > WARN_ON(ib->length_dw > p->num_dw_left); > f = amdgpu_job_submit(p->job); >
