On Mon, Jul 31, 2023 at 10:48:12PM +1000, Jonathan Gray wrote: > On Sun, Jul 30, 2023 at 03:21:47PM +0900, YASUOKA Masahiko wrote: > > Hello, > > > > I got new vaio last week, the machine seems to have the same graphic > > > > inteldrm0 at pci0 dev 2 function 0 "Intel Graphics" rev 0x04 > > drm0 at inteldrm0 > > inteldrm0: msi, ALDERLAKE_P, gen 12 > > > > and has the same problem. I found having Option "PageFlip" "off" in > > /etc/X11/xorg.conf can workaround the problem. > > > > Section "Device" > > Identifier "Card0" > > Driver "modesetting" > > BusID "PCI:0:2:0" > > Option "PageFlip" "off" > > EndSection > > running GENERIC I got the following with xfce. > > matches the trace in an earlier report from sthen@ > https://marc.info/?l=openbsd-bugs&m=168234057913478&w=2 > > dpt_insert_entries+0xbc: movl 0x34(%r8),%r10d > r8 0xffff800001938fe0 > r10 0x1000 > > 0xffffffff81ab0bc3 <+179>: mov %r8,%rcx > 0xffffffff81ab0bc6 <+182>: add $0x20,%rcx > 0xffffffff81ab0bca <+186>: je 0xffffffff81ab0be8 > <dpt_insert_entries+216> > 0xffffffff81ab0bcc <+188>: mov 0x34(%r8),%r10d > 0xffffffff81ab0bd0 <+192>: test %r10d,%r10d > 0xffffffff81ab0bd3 <+195>: je 0xffffffff81ab0be8 > <dpt_insert_entries+216> > > (gdb) info line *0xffffffff81ab0bcc > Line 34 of "/sys/dev/pci/drm/i915/i915_scatterlist.h" > starts at address 0xffffffff81ab0bc1 <dpt_insert_entries+177> > and ends at 0xffffffff81ab0bd5 <dpt_insert_entries+197>. > > if (dma && s.sgp && sg_dma_len(s.sgp) == 0) { > > dpt_insert_entries+0xbc > dpt_bind_vma+0x64 > i915_vma_bind+0x317 > i915_vma_pin_ww+0x44b > intel_plane_pin_fb+0x25c > intel_prepare_plane_pin_fb+0x12c > drm_atomic_helper_prepare_planes+0x5b > intel_atomic_commit+0xda > drm_atomic_helper_page_flip+0x77 > drm_mode_page_flip_ioctl+0x466 > drm_do_ioctl+0x285 > drmioctl+0xdc > VOP_IOCTL+0x57 > vn_ioctl+0x6c
The fix is to not reset the end of list marker when assigning a page. Index: sys/dev/pci/drm/include/linux/scatterlist.h =================================================================== RCS file: /cvs/src/sys/dev/pci/drm/include/linux/scatterlist.h,v retrieving revision 1.5 diff -u -p -r1.5 scatterlist.h --- sys/dev/pci/drm/include/linux/scatterlist.h 1 Jan 2023 01:34:58 -0000 1.5 +++ sys/dev/pci/drm/include/linux/scatterlist.h 2 Aug 2023 04:02:02 -0000 @@ -119,7 +119,6 @@ sg_set_page(struct scatterlist *sgl, str sgl->dma_address = page ? VM_PAGE_TO_PHYS(page) : 0; sgl->offset = offset; sgl->length = length; - sgl->end = false; } #define sg_dma_address(sg) ((sg)->dma_address)