> Date: Wed, 2 Aug 2023 14:11:36 +1000 > From: Jonathan Gray <j...@jsg.id.au> > > 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.
The Linux version retains the end marker, so this fix appears to be correct. ok kettenis@ > 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) > >