Task Description
Attached to Project: Archlinux32 Opened by Andreas Baumann - 13.06.2018 Last edited by Andreas Baumann - 13.09.2018
FS#39 - xorg modesetting module fails with illegal instruction
[ 22.717] (EE) Illegal instruction at address 0xb632cd37 [ 22.718] (EE) Fatal server error: [ 22.718] (EE) Caught signal 4 (Illegal instruction). Server aborting [ 22.719] (EE)
PID: 242 (Xorg)
UID: 0 (root)
GID: 0 (root)
Signal: 6 (ABRT)
Timestamp: Wed 2018-06-13 20:53:43 CEST (41s ago)
Command Line: /usr/lib/Xorg :0
Executable: /usr/lib/Xorg
Control Group: /user.slice/user-0.slice/session-c1.scope
Unit: session-c1.scope
Slice: user-0.slice
Session: c1
Owner UID: 0 (root)
Boot ID: ea12301d13874fac8112dad7bf566bdb
Machine ID: 2f98089cbe8d40cb8776a580d6803b58
Hostname: arch32-staging
Storage: /var/lib/systemd/coredump/core.Xorg.0.ea12301d13874fac8112dad7bf566bdb.242.1528916023000>
Message: Process 242 (Xorg) of user 0 dumped core.
Stack trace of thread 242:
#0 0x00000000b7f58d21 __kernel_vsyscall (linux-gate.so.1)
#1 0x00000000b7d749c2 raise (libc.so.6)
#2 0x00000000b7d5e71e abort (libc.so.6)
#3 0x000000000056b555 OsAbort (Xorg)
#4 0x000000000056b5d2 FatalError (Xorg)
#5 0x000000000060a93a n/a (Xorg)
#6 0x00000000b7f58d38 __kernel_rt_sigreturn (linux-gate.so.1)
#7 0x00000000b632cd37 n/a (kms_swrast_dri.so)
#8 0x00000000b5f0181f n/a (kms_swrast_dri.so)
#9 0x00000000b7f698b3 call_init.part.0 (ld-linux.so.2)
#10 0x00000000b7f699b2 _dl_init (ld-linux.so.2)
#11 0x00000000b7f6d7e0 dl_open_worker (ld-linux.so.2)
#12 0x00000000b7e7bc91 _dl_catch_exception (libc.so.6)
#13 0x00000000b7f6d077 _dl_open (ld-linux.so.2)
#14 0x00000000b7b8cb73 n/a (libdl.so.2)
#15 0x00000000b7e7bc91 _dl_catch_exception (libc.so.6)
#16 0x00000000b7e7bd40 _dl_catch_error (libc.so.6)
#17 0x00000000b7b8d333 n/a (libdl.so.2)
#18 0x00000000b7b8cc16 dlopen (libdl.so.2)
#19 0x00000000b7f2eb6e n/a (libgbm.so.1)
#20 0x00000000b7f2ecb3 n/a (libgbm.so.1)
#21 0x00000000b7f2ee24 n/a (libgbm.so.1)
#22 0x00000000b7f2f0d7 n/a (libgbm.so.1)
#23 0x00000000b7f2c9ba gbm_create_device (libgbm.so.1)
#24 0x00000000b6ef4ee4 glamor_egl_init (libglamoregl.so)
#25 0x00000000b7f49b4a n/a (modesetting_drv.so)
#26 0x000000000051c169 InitOutput (Xorg)
#27 0x000000000049d8e1 n/a (Xorg)
#28 0x00000000b7d60041 __libc_start_main (libc.so.6)
#29 0x000000000049e7e2 _start (Xorg)
Comments (7)
Related Tasks (0/0)
Admin Andreas Baumann commented on 14.06.2018 15:53
#0 0xb7f3ad21 in kernel_vsyscall () [- #1 0xb7d579c2 in raise () from /usr/lib/libc.so.6 #2 0xb7d4171e in abort () from /usr/lib/libc.so.6 #3 0x005855f5 in OsAbort () at ../xorg-server-1.20.0/os/utils.c:1350 #4 0×00585672 in AbortServer () at ../xorg-server-1.20.0/os/log.c:877 #4 0×00585672 in AbortServer () at ../xorg-server-1.20.0/os/log.c:877 #5 FatalError (f=0x65e1bc “Caught signal %d (%s). Server aborting\n”) at ../xorg-server-1.20.0/os/log.c:1015 #6 0x00624b5a in OsSigHandler (signo=, sip=, unused=, signo=, sip=, unused
at ../xorg-server-1.20.0/os/osinit.c:156 #7 #8 0xb62d5d37 in SwrJit::X86Intrinsic::X86Intrinsic (this=0xbf955e24) at ../mesa-18.1.1/src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp:66 #9 std::pair, std::allocator > const, SwrJit::X86Intrinsic>::pair (this=0xbf955e0c, x=…, y=…) at /usr/include/c++/8.1.1/bits/stl_pair.h:301 #10 0xb5eaa81f in static_initialization_and_destruction_0(int, int) [clone .constprop.236] ()
at /usr/include/c++/8.1.1/new:169
#11 0xb7f4b8b3 in call_init.part () from /lib/ld-linux.so.2 #12 0xb7f4b9b2 in _dl_init () from /lib/ld-linux.so.2 #13 0xb7f4f7e0 in dl_open_worker () from /lib/ld-linux.so.2 #14 0xb7e5ec91 in _dl_catch_exception () from /usr/lib/libc.so.6 #15 0xb7f4f077 in _dl_open () from /lib/ld-linux.so.2 #16 0xb7b6fb73 in ?? () from /usr/lib/libdl.so.2 #17 0xb7e5ec91 in _dl_catch_exception () from /usr/lib/libc.so.6 #18 0xb7e5ed40 in _dl_catch_error () from /usr/lib/libc.so.6 —Type to continue, or q to quit— #19 0xb7b70333 in ?? () from /usr/lib/libdl.so.2 #20 0xb7b6fc16 in dlopen () from /usr/lib/libdl.so.2 #21 0xb7f10b6e in dri_open_driver (dri=, dri
at ../mesa-18.1.1/src/gbm/backends/dri/gbm_dri.c:354
#22 0xb7f10cb3 in dri_load_driver (dri=0x17e9660) at ../mesa-18.1.1/src/gbm/backends/dri/gbm_dri.c:439 #23 dri_screen_create_dri2 (dri=dri@entry=0x17e9660, driver_name
at ../mesa-18.1.1/src/gbm/backends/dri/gbm_dri.c:439
#24 0xb7f10e24 in dri_screen_create_sw (dri=0x17e9660)
at ../mesa-18.1.1/src/gbm/backends/dri/gbm_dri.c:539
#25 0xb7f110d7 in dri_device_create (fd=13) at ../mesa-18.1.1/src/gbm/backends/dri/gbm_dri.c:1429 #26 0xb7f0e9ba in gbm_create_device (fd=13) at ../mesa-18.1.1/src/gbm/main/gbm.c:137 #27 0xb6ebaee4 in glamor_egl_init (scrn=0x17e83a0, fd=13)
at ../xorg-server-1.20.0/glamor/glamor_egl.c:894
#28 0xb7f2bb4a in try_enable_glamor (pScrn=0x17e83a0)
at ../xorg-server-1.20.0/hw/xfree86/drivers/modesetting/driver.c:753
#29 PreInit (pScrn=, flags
at ../xorg-server-1.20.0/hw/xfree86/drivers/modesetting/driver.c:972
#30 0×00536209 in InitOutput (pScreenInfo=0x6fd520 , argc=6, argv=0xbf957944)
at ../xorg-server-1.20.0/hw/xfree86/common/xf86Init.c:536
#31 0x004b7991 in dix_main (envp=, argv=, argc
at ../xorg-server-1.20.0/dix/main.c:193
#32 main (argc=, argv=, envp
at ../xorg-server-1.20.0/dix/stubmain.c:34
=> 0xb62d5d37 <+71>: vmovq -0×20(%ebp),%xmm0
0xb62d5d3c <+76>: vmovq %xmm0,0x18(%esi)
Looks like AVX optimized code in libswr though I’m deleting -D swr-arches=avx,avx2 in the diff-PKGBUILD (maybe wrongly)? Admin Andreas Baumann commented on 14.06.2018 17:55
So, I read OpenSWR requires at least AVX, so we can safely drop the library for 32-bit machines, right?
So removing swr from the gallium-drivers, then I get croaks about gallium-nine requiring a pipe.
I’ll continue to drop options in arch-meson in PKGBUILD till I get a working build..
Any help welcome. Admin Andreas Baumann commented on 14.06.2018 18:13
Some docu:
http://openswr.org/build-linux.html
https://www.mesa3d.org/envvars.html
https://www.felixcloutier.com/x86/MOVQ.html
Trying the following patch at the moment:
eval “$(
declare -f build | \
sed '
/-D gallium-drivers=/s/,swr//g
s/-D swr-arches=avx,avx2//g
/gallium-drivers/s/,swr//g
s/-D gallium-nine=true/-D gallium-nine=false/g
s/-D osmesa=gallium/-D osmesa=classic/g
s/dri-drivers=/dri-drivers=swrast,/g
'
)”
Admin Erich Eckner commented on 14.06.2018 20:54
only glitch I see with your fix is, that the options are in one line in `declare -f build`, so the line-matching makes no sense Admin Andreas Baumann commented on 15.06.2018 06:07
one line? It should actually be one line each and it worked for me? *puzzle* Admin Andreas Baumann commented on 15.06.2018 08:55
This seems to work. But I’m disabling and changing an awful lot of stuff:
# disable AVX/AVX2 in openswf, makes no sense with old CPUs eval “$(
declare -f build | \
sed '
/-D gallium-drivers=/s/,swr//g
s/-D swr-arches=avx,avx2//g
/gallium-drivers/s/,swr//g
s/-D gallium-nine=true/-D gallium-nine=false/g
s/-D osmesa=gallium/-D osmesa=classic/g
s/dri-drivers=/dri-drivers=swrast,/g
'
declare -f package_mesa | \
sed '
s@_install fakeinstall/usr/lib/d3d@#\0@g
s@_install fakeinstall/usr/lib/libswrAVX.*@#\0@g
'
)”
Admin Andreas Baumann commented on 13.09.2018 08:34
Fails again with (mesa 18.1.8 on testing):
Program received signal SIGILL, Illegal instruction. 0xb627e167 in ?? () from /usr/lib/dri/kms_swrast_dri.so => 0xb627e167: c5 fa 7e 45 e0 vmovq -0×20(%ebp),%xmm0
Google Cache
Bing Cache
|