NetBSD-Bugs archive

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

re: kern/60926: amdgpu triggers assert in ww_mutex, disabling makes it mostly stable (raven ridge)



The following reply was made to PR kern/60926; it has been noted by GNATS.

From: matthew green <mrg%eterna23.net@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: re: kern/60926: amdgpu triggers assert in ww_mutex, disabling makes it mostly stable (raven ridge)
Date: Mon, 26 Oct 2026 15:10:39 +1100

 i meant to include eg, stack trace info.
 
 here's what gdb has to say:
 
 (gdb) bt
 #0  0xffffffff80239fca in cpu_reboot (howto=3Dhowto@entry=3D260, bootstr=3D=
 bootstr@entry=3D0x0) at /usr/src3/sys/arch/amd64/amd64/machdep.c:880
 #1  0xffffffff80d766e8 in kern_reboot (howto=3Dhowto@entry=3D260, bootstr=3D=
 bootstr@entry=3D0x0) at /usr/src3/sys/kern/kern_reboot.c:91
 #2  0xffffffff80dc5a75 in vpanic (fmt=3D0xffffffff813cfb68 "kernel %sasser=
 tion \"%s\" failed: file \"%s\", line %d locking %p against myself: %p",
     ap=3Dap@entry=3D0xffff920942174928) at /usr/src3/sys/kern/subr_prf.c:2=
 88
 #3  0xffffffff80fb0b44 in kern_assert (fmt=3Dfmt@entry=3D0xffffffff813cfb6=
 8 "kernel %sassertion \"%s\" failed: file \"%s\", line %d locking %p again=
 st myself: %p")
     at /usr/src3/sys/lib/libkern/kern_assert.c:51
 #4  0xffffffff80f473c9 in linux_ww_mutex_trylock (mutex=3D0xffff86bc4023d1=
 e0) at ./machine/cpu.h:80
 #5  0xffffffff80f3ae14 in linux_dma_resv_trylock (robj=3D<optimized out>) =
 at /usr/src3/sys/external/bsd/drm2/linux/linux_dma_resv.c:216
 #6  0xffffffff80f49952 in ttm_bo_cleanup_refs_or_queue (bo=3D0xffff86bc3fe=
 51358) at /usr/src3/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c:500
 #7  ttm_bo_release (kref=3D0xffff86bc3fe514f0) at /usr/src3/sys/external/b=
 sd/drm2/dist/drm/ttm/ttm_bo.c:696
 #8  0xffffffff80f4a68d in kref_sub (count=3D1, kref=3D<optimized out>, rel=
 ease=3D0xffffffff80f4985f <ttm_bo_release>)
     at /usr/src3/sys/external/bsd/drm2/include/linux/kref.h:94
 #9  0xffffffff80988fbf in amdgpu_bo_unref (bo=3Dbo@entry=3D0xffff9200450cf=
 8d0) at /usr/src3/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_object.=
 c:866
 #10 0xffffffff809e8059 in amdgpu_vm_free_table (entry=3Dentry@entry=3D0xff=
 ff9200450cf8c8) at /usr/src3/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amd=
 gpu_vm.c:963
 #11 0xffffffff809e91f3 in amdgpu_vm_free_pts (adev=3D<optimized out>, vm=3D=
 <optimized out>, start=3D0xffff920942174af0)
     at /usr/src3/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c:991
 #12 amdgpu_vm_update_ptes (params=3D0xffff920942174b10, start=3D<optimized=
  out>, end=3D34360808448, dst=3D2860515328, flags=3D113)
     at /usr/src3/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c:154=
 9
 #13 amdgpu_vm_bo_update_mapping (adev=3Dadev@entry=3D0xffff920043a10008, v=
 m=3Dvm@entry=3D0xffff86bc430c5008, direct=3Ddirect@entry=3Dfalse, exclusiv=
 e=3Dexclusive@entry=3D0x0,
     start=3Dstart@entry=3D34360807424, last=3Dlast@entry=3D34360808447, fl=
 ags=3D113, addr=3D<optimized out>, pages_addr=3D0x0, fence=3Dfence@entry=3D=
 0xffff86bc456c5500)
     at /usr/src3/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c:161=
 7
 #14 0xffffffff809ea5f4 in amdgpu_vm_bo_split_mapping (adev=3D0xffff920043a=
 10008, exclusive=3D<optimized out>, pages_addr=3D<optimized out>, vm=3D<op=
 timized out>,
     mapping=3D0xffff86bc3db59348, flags=3D432345564227567729, bo_adev=3D<o=
 ptimized out>, nodes=3D<optimized out>, fence=3D<optimized out>)
     at /usr/src3/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c:174=
 4
 #15 amdgpu_vm_bo_update (adev=3Dadev@entry=3D0xffff920043a10008, bo_va=3Db=
 o_va@entry=3D0xffff86bc456c54c8, clear=3Dclear@entry=3Dfalse)
     at /usr/src3/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_vm.c:183=
 3
 #16 0xffffffff80928af5 in amdgpu_gem_va_update_vm (adev=3D0xffff920043a100=
 08, vm=3D0xffff86bc430c5008, bo_va=3D0xffff86bc456c54c8, operation=3D1)
     at /usr/src3/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gem.c:54=
 0
 #17 amdgpu_gem_va_ioctl (dev=3D<optimized out>, data=3D<optimized out>, fi=
 lp=3D<optimized out>)
     at /usr/src3/sys/external/bsd/drm2/dist/drm/amd/amdgpu/amdgpu_gem.c:70=
 1
 #18 0xffffffff80bb572c in drm_ioctl (fp=3D<optimized out>, cmd=3D<optimize=
 d out>, data=3D0xffff920942174ee0)
     at /usr/src3/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:980
 #19 0xffffffff80b79505 in drm_ioctl_shim (fp=3D<optimized out>, cmd=3D<opt=
 imized out>, data=3D<optimized out>)
     at /usr/src3/sys/external/bsd/drm2/drm/drm_cdevsw.c:393
 #20 0xffffffff80ddd9d0 in sys_ioctl (l=3D<optimized out>, uap=3D0xffff9209=
 42175000, retval=3D<optimized out>) at /usr/src3/sys/kern/sys_generic.c:67=
 5
 #21 0xffffffff805da02d in sy_call (sy=3D0xffffffff816432d0 <sysent+1296>, =
 l=3D0xffff86bc42cfc400, uap=3D0xffff920942175000, rval=3D0xffff920942174fb=
 0)
     at /usr/src3/sys/sys/syscallvar.h:65
 #22 sy_invoke (sy=3D0xffffffff816432d0 <sysent+1296>, l=3D0xffff86bc42cfc4=
 00, uap=3D0xffff920942175000, rval=3D0xffff920942174fb0, code=3D54)
     at /usr/src3/sys/sys/syscallvar.h:94
 #23 syscall (frame=3D0xffff920942175000) at /usr/src3/sys/arch/x86/x86/sys=
 call.c:137
 #24 0xffffffff8021025d in handle_syscall ()
 
 (gdb) p *mutex
 $3 =3D {
   wwm_state =3D 3 '\003',
   wwm_debug =3D true,
   wwm_u =3D {
     owner =3D 0xffff920942174cf8,
     ctx =3D 0xffff920942174cf8
   },
   wwm_lock =3D {
     u =3D {
       mtxa_owner =3D 67073,
       s =3D {
         mtxs_dummy =3D 1 '\001',
         mtxs_ipl =3D {
           _ipl =3D 6 '\006'
         },
         mtxs_lock =3D 1 '\001',
         mtxs_unused =3D 0 '\000'
       } =
 
     } =
 
   },
   wwm_class =3D 0xffffffff8167a740 <linux_reservation_ww_class>,
   wwm_waiters =3D {
     rbt_root =3D 0x0,
     rbt_ops =3D 0xffffffff81282700 <ww_acquire_ctx_rb_ops>,
     rbt_minmax =3D {0xffff86bc4023d200, 0xffff86bc4023d200}
   },
   wwm_cv =3D {
     cv_opaque =3D {0xffff86c32961c800, 0xffffffff81300125}
   } =
 
 } =
 
 
 (gdb) p *$4->l_proc
 [ ... ]
   p_path =3D 0xffff86bc35ef58a0 "/usr/X11R7/bin/X",
 
 ie, this is X server itself.
 
 
 crash shows:
 
 crash> bt
 __kernel_end() at 0
 kern_reboot() at kern_reboot+0x5f
 vpanic() at vpanic+0x197
 __x86_indirect_thunk_r8() at __x86_indirect_thunk_r8+0xd
 linux_ww_mutex_unlock() at linux_ww_mutex_unlock+0x44
 linux_dma_resv_trylock() at linux_dma_resv_trylock+0x9
 ttm_bo_release() at ttm_bo_release+0x133
 amdgpu_bo_unref() at amdgpu_bo_unref+0x1d
 amdgpu_vm_free_table() at amdgpu_vm_free_table+0x5c
 amdgpu_vm_bo_update_mapping() at amdgpu_vm_bo_update_mapping+0x840
 amdgpu_vm_bo_update() at amdgpu_vm_bo_update+0x2d2
 amdgpu_gem_va_ioctl() at amdgpu_gem_va_ioctl+0x500
 drm_ioctl() at drm_ioctl+0x2ad
 drm_ioctl_shim() at drm_ioctl_shim+0x38
 sys_ioctl() at sys_ioctl+0x256
 syscall() at syscall+0xaf
 --- syscall (number 54) ---
 
 crash> show lock 0xffff86bc4023d1e0
 lock address : ffff86bc4023d1e0
 type         : sleep/adaptive
 initialized  : linux_dma_resv_init+0x18
 shared holds :                  0 exclusive:                  1
 shares wanted:                  0 exclusive:                  3
 relevant cpu :         4294967295 last held:                  0
 relevant lwp : 000000000000000000 last held: 0xffff86bc42cfc400
 last locked* : ttm_eu_reserve_buffers+0x184
 unlocked     : ttm_bo_delayed_delete+0x13
 
 



Home | Main Index | Thread Index | Old Index