• Status New
  • Percent Complete
    0%
  • Task Type Bug Report
  • Category Packages → Packages: Stable
  • Assigned To No-one
  • Operating System i686
  • Severity Low
  • Priority Medium
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Arch Linux 32
Opened by Admin - 14.11.2019
Last edited by Erich Eckner - 23.02.2020

FS#39 - xorg modesetting module fails with illegal instruction

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

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing