Hi, On Wed, 2 Aug 2023 14:11:36 +1000 Jonathan Gray <j...@jsg.id.au> wrote: > 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.
Thanks. I verified the diff fixed the problem. > 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) >