On 7/25/22 4:34 PM, Chris Narkiewicz wrote:
On Mon, Jul 25, 2022 at 03:48:19PM -0400, Nick Holland wrote:
Sigh.  collect info, leave out most basic part: what I mean
by "X quit working"...

I checked your Xorg.0.log and it looks familiar. Please look for post
"X11 hangs on StarLabs Mk IV - snapshot 06-06-2022" in the bugs@
archive and recent discussion in t...@openbsd.org:
"Xorg hanging on StarLabs Lite IV - infinite sleep in ioctl 
drm_syncobj_array_wait_timeout"

Also, if you can boot a custom kernel, you could apply this patch to
confirm my findings:
https://github.com/ezaquarii/src/commit/0047e0f206896aa5287cad250c6bee1c994cdf88
https://github.com/ezaquarii/xenocara/commit/1d6e50bf668adfc07a4da0860d6c8f738ec1228a

Once applied, it dumps some traces via stdout (xenocara) and dmesg
(kernel).  In my case, X hangs, but I can still SSH into the machine
to dump dmesg and do some things. When pkill -9 X, it locks the
machine for good.

I hope we are on some path to fix it.

@jsg FYI - it looks like we have another case of the Xorg hang on intel.

Best regards,
Chris Narkiewicz

Thanks to Chris for a bit of hand-holding on getting diffs and files out
of github.

here's what got added to dmesg after I built and installed a kernel with
that patch on my "problem" machine:

...
wsdisplay0 at inteldrm0 mux 1: console (std, vt100 emulation), using wskbd0
wsdisplay0: screen 1-5 added (std, vt100 emulation)
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1340
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1363: array 
wait
drm_syncobj_array_wait:1255: timeline: 0 jiffies from 0 ns
drm_syncobj_array_wait_timeout:1120: fence add wait
drm_syncobj_array_wait_timeout:1124
drm_syncobj_fence_add_wait:254: spinlock
drm_syncobj_fence_add_wait:260: dma_fence_get
drm_syncobj_fence_add_wait:263: dma_fence_put
drm_syncobj_array_wait_timeout:1130: set interruptible
drm_syncobj_array_wait_timeout:1159: done?
drm_syncobj_array_wait_timeout:1178: set running
drm_syncobj_array_wait_timeout:1182 cleanup
drm_syncobj_array_wait_timeout:1185 [0/1] removed wait
drm_syncobj_array_wait_timeout:1191 put fence
drm_syncobj_array_wait_timeout:1194 cleanup done
drm_syncobj_array_wait_timeout:1200 return
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1340
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1363: array 
wait
drm_syncobj_array_wait:1255: timeline: 0 jiffies from 287089654978 ns
drm_syncobj_array_wait_timeout:1182 cleanup
drm_syncobj_array_wait_timeout:1185 [0/1] removed wait
drm_syncobj_array_wait_timeout:1191 put fence
drm_syncobj_array_wait_timeout:1194 cleanup done
drm_syncobj_array_wait_timeout:1200 return
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1340
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1363: array 
wait
drm_syncobj_array_wait:1255: timeline: 0 jiffies from 287092414092 ns
drm_syncobj_array_wait_timeout:1120: fence add wait
drm_syncobj_array_wait_timeout:1130: set interruptible
drm_syncobj_array_wait_timeout:1139: check
drm_syncobj_array_wait_timeout:1156: check done
drm_syncobj_array_wait_timeout:1159: done?
drm_syncobj_array_wait_timeout:1178: set running
drm_syncobj_array_wait_timeout:1182 cleanup
drm_syncobj_array_wait_timeout:1185 [0/1] removed wait
drm_syncobj_array_wait_timeout:1187 [0/1] callback
drm_syncobj_array_wait_timeout:1191 put fence
drm_syncobj_array_wait_timeout:1194 cleanup done
drm_syncobj_array_wait_timeout:1200 return
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1340
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1363: array 
wait
drm_syncobj_array_wait:1255: timeline: 0 jiffies from 287094029901 ns
drm_syncobj_array_wait_timeout:1120: fence add wait
drm_syncobj_array_wait_timeout:1130: set interruptible
drm_syncobj_array_wait_timeout:1139: check
drm_syncobj_array_wait_timeout:1156: check done
drm_syncobj_array_wait_timeout:1159: done?
drm_syncobj_array_wait_timeout:1178: set running
drm_syncobj_array_wait_timeout:1182 cleanup
drm_syncobj_array_wait_timeout:1185 [0/1] removed wait
drm_syncobj_array_wait_timeout:1187 [0/1] callback
drm_syncobj_array_wait_timeout:1191 put fence
drm_syncobj_array_wait_timeout:1194 cleanup done
drm_syncobj_array_wait_timeout:1200 return
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1340
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1363: array 
wait
drm_syncobj_array_wait:1255: timeline: 0 jiffies from 0 ns
drm_syncobj_array_wait_timeout:1120: fence add wait
drm_syncobj_array_wait_timeout:1124
drm_syncobj_fence_add_wait:254: spinlock
drm_syncobj_fence_add_wait:260: dma_fence_get
drm_syncobj_fence_add_wait:263: dma_fence_put
drm_syncobj_array_wait_timeout:1130: set interruptible
drm_syncobj_array_wait_timeout:1159: done?
drm_syncobj_array_wait_timeout:1178: set running
drm_syncobj_array_wait_timeout:1182 cleanup
drm_syncobj_array_wait_timeout:1185 [0/1] removed wait
drm_syncobj_array_wait_timeout:1191 put fence
drm_syncobj_array_wait_timeout:1194 cleanup done
drm_syncobj_array_wait_timeout:1200 return
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1340
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1363: array 
wait
drm_syncobj_array_wait:1255: timeline: 0 jiffies from 289492328005 ns
drm_syncobj_array_wait_timeout:1120: fence add wait
drm_syncobj_array_wait_timeout:1130: set interruptible
drm_syncobj_array_wait_timeout:1139: check
drm_syncobj_array_wait_timeout:1156: check done
drm_syncobj_array_wait_timeout:1159: done?
drm_syncobj_array_wait_timeout:1178: set running
drm_syncobj_array_wait_timeout:1182 cleanup
drm_syncobj_array_wait_timeout:1185 [0/1] removed wait
drm_syncobj_array_wait_timeout:1187 [0/1] callback
drm_syncobj_array_wait_timeout:1191 put fence
drm_syncobj_array_wait_timeout:1194 cleanup done
drm_syncobj_array_wait_timeout:1200 return
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1340
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1363: array 
wait
drm_syncobj_array_wait:1255: timeline: 0 jiffies from 289495837984 ns
drm_syncobj_array_wait_timeout:1120: fence add wait
drm_syncobj_array_wait_timeout:1130: set interruptible
drm_syncobj_array_wait_timeout:1139: check
drm_syncobj_array_wait_timeout:1156: check done
drm_syncobj_array_wait_timeout:1159: done?
drm_syncobj_array_wait_timeout:1178: set running
drm_syncobj_array_wait_timeout:1182 cleanup
drm_syncobj_array_wait_timeout:1185 [0/1] removed wait
drm_syncobj_array_wait_timeout:1187 [0/1] callback
drm_syncobj_array_wait_timeout:1191 put fence
drm_syncobj_array_wait_timeout:1194 cleanup done
drm_syncobj_array_wait_timeout:1200 return
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1340
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1363: array 
wait
drm_syncobj_array_wait:1255: timeline: 0 jiffies from 289496608242 ns
drm_syncobj_array_wait_timeout:1120: fence add wait
drm_syncobj_array_wait_timeout:1130: set interruptible
drm_syncobj_array_wait_timeout:1139: check
drm_syncobj_array_wait_timeout:1156: check done
drm_syncobj_array_wait_timeout:1159: done?
drm_syncobj_array_wait_timeout:1178: set running
drm_syncobj_array_wait_timeout:1182 cleanup
drm_syncobj_array_wait_timeout:1185 [0/1] removed wait
drm_syncobj_array_wait_timeout:1187 [0/1] callback
drm_syncobj_array_wait_timeout:1191 put fence
drm_syncobj_array_wait_timeout:1194 cleanup done
drm_syncobj_array_wait_timeout:1200 return
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1340
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1363: array 
wait
drm_syncobj_array_wait:1255: timeline: 0 jiffies from 289497343179 ns
drm_syncobj_array_wait_timeout:1120: fence add wait
drm_syncobj_array_wait_timeout:1130: set interruptible
drm_syncobj_array_wait_timeout:1139: check
drm_syncobj_array_wait_timeout:1156: check done
drm_syncobj_array_wait_timeout:1159: done?
drm_syncobj_array_wait_timeout:1178: set running
drm_syncobj_array_wait_timeout:1182 cleanup
drm_syncobj_array_wait_timeout:1185 [0/1] removed wait
drm_syncobj_array_wait_timeout:1187 [0/1] callback
drm_syncobj_array_wait_timeout:1191 put fence
drm_syncobj_array_wait_timeout:1194 cleanup done
drm_syncobj_array_wait_timeout:1200 return
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1340
drm_syncobj_wait_ioctl(): /usr/src/sys/dev/pci/drm/drm_syncobj.c:1363: array 
wait
drm_syncobj_array_wait:1255: timeline: 2147483646 jiffies from 
9223372036854775807 ns
drm_syncobj_array_wait_timeout:1120: fence add wait
drm_syncobj_array_wait_timeout:1130: set interruptible
drm_syncobj_array_wait_timeout:1139: check
drm_syncobj_array_wait_timeout:1156: check done
drm_syncobj_array_wait_timeout:1159: done?
drm_syncobj_array_wait_timeout:1173: schedule timeout 2147483646

Nick.

Reply via email to