Bug#979276: xserver-xorg-video-intel: Server fails to start: "Illegal instruction"
> I tried to reconstruct the given backtrace in [1]. Thanks, > So the actual issue seems to be a "movq" instruction which > seems to be due to [3] a SSE2 instruction, which might > the "Pentium III M" is lacking, like Stefan already noted. > I am not sure where the current Debian baseline could be > consulted regarding this, maybe [4] could give a hint. AFAIK Debian's i386 architecture does not (yet) require SSE2 (as witnessed by the existence of the package `sse2-support`). Where does this instruction come from? Is it generated by GCC (and if so, why does GCC generate it)? Stefan PS: I hope the i386 port never will require SSE2, since all the processors I have which support SSE2 also support AMD64.
Bug#979276: xserver-xorg-video-intel: Server fails to start: "Illegal instruction"
On Thu, Mar 18, 2021 at 09:39:36AM -0400, Stefan Monnier wrote: > > I tried to reconstruct the given backtrace in [1]. > > Thanks, > > > So the actual issue seems to be a "movq" instruction which > > seems to be due to [3] a SSE2 instruction, which might > > the "Pentium III M" is lacking, like Stefan already noted. > > I am not sure where the current Debian baseline could be > > consulted regarding this, maybe [4] could give a hint. > > AFAIK Debian's i386 architecture does not (yet) require SSE2 (as > witnessed by the existence of the package `sse2-support`). > > Where does this instruction come from? > Is it generated by GCC (and if so, why does GCC generate it)? > I'm guessing because of this: https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel/-/blob/master/src/sna/blt.c#L37 Does the below help? diff --git a/src/sna/blt.c b/src/sna/blt.c index afc719f6..803c5142 100644 --- a/src/sna/blt.c +++ b/src/sna/blt.c @@ -626,17 +626,17 @@ memcpy_between_tiled_x__swizzle_0__sse2(const void *src, void *dst, int bpp, assert(((uintptr_t)src_row & (tile_width - 1)) == 0); to_memcpy(assume_aligned(dst_row, tile_width), assume_aligned(src_row, tile_width), w); } } } -#pragma GCC push_options +#pragma GCC pop_options #endif fast void memcpy_blt(const void *src, void *dst, int bpp, int32_t src_stride, int32_t dst_stride, int16_t src_x, int16_t src_y, int16_t dst_x, int16_t dst_y, uint16_t width, uint16_t height) Cheers, Julien
Bug#979276: xserver-xorg-video-intel: Server fails to start: "Illegal instruction"
Dear Maintainer, I tried to reconstruct the given backtrace in [1]. So the actual issue seems to be a "movq" instruction which seems to be due to [3] a SSE2 instruction, which might the "Pentium III M" is lacking, like Stefan already noted. I am not sure where the current Debian baseline could be consulted regarding this, maybe [4] could give a hint. Kind regards, Bernhard [1] Backtrace: 0: Xorg (OsLookupColor+0x142) [0x611232] | 0x00646232 in OsSigHandler at ../../../../os/osinit.c:138 1: linux-gate.so.1 (?+0x0) [0xb7fbd570] | 2: intel_drv.so (?+0x0) [0xb701f94c] | 0x986c794c in choose_memcpy_tiled_x at ../../../src/sna/blt.c:1162 3: intel_drv.so (?+0x0) [0xb702ad14] | 0x986d2d14 in kgem_init_swizzling at ../../../src/sna/kgem.c:232 4: intel_drv.so (?+0x0) [0xb707aa93] | 0x98722a93 in sna_pre_init at ../../../src/sna/sna_driver.c:626 5: Xorg (InitOutput+0xa60) [0x4e7d70]| 0x0051cd70 in InitOutput at ../../../../../../hw/xfree86/common/xf86Init.c:523 6: Xorg (InitFonts+0x2b5) [0x4a8d05] | 0x004ddd05 in dix_main at ../../../../dix/main.c:193 7: Xorg (miPolyFillRect+0x804) [0x49184b]| 0x004c684b in main at ../../../../dix/stubmain.c:34 8: libc.so.6 (__libc_start_main+0x106) [0xb78cae46] | 0xb780fe46 in __libc_start_main at ../csu/libc-start.c:308 9: Xorg (_start+0x31) [0x491891] | 0x004c6891 <_start+49> Illegal instruction at address 0xb701f94c [2] (gdb) disassemble /r choose_memcpy_tiled_x, choose_memcpy_tiled_x+370 0x986c7940 : 66 0f 6e c0 movd %eax,%xmm0 0x986c7944 : 66 0f 6e c9 movd %ecx,%xmm1 0x986c7948 : 66 0f 62 c1 punpckldq %xmm1,%xmm0 -> 0x986c794c : 66 0f d6 82 0c 04 00 00 movq %xmm0,0x40c(%edx) 0x986c7954 : 5b pop %ebx 0x986c7955 : c3 ret [3] https://en.wikipedia.org/wiki/X86_instruction_listings#SSE2_MMX-like_instructions_extended_to_SSE_registers [4] https://wiki.debian.org/ArchitectureSpecificsMemo#i386-1
[bts-link] source package src:mesa
# # bts-link upstream status pull for source package src:mesa # see http://lists.debian.org/debian-devel-announce/2006/05/msg1.html # https://bts-link-team.pages.debian.net/bts-link/ # user debian-bts-l...@lists.debian.org # remote status report for #983466 (http://bugs.debian.org/983466) # Bug title: Black screen at dual monitor with warn from i915_gem_ww_ctx_backoff # * https://gitlab.freedesktop.org/mesa/mesa/-/issues/790 # * remote status changed: (?) -> opened usertags 983466 + status-opened thanks