• Status New   Reopened
  • Percent Complete
    0%
  • Task Type Bug Report
  • Category Packages → Packages: Testing
  • Assigned To No-one
  • Operating System
  • Severity Low
  • Priority Medium
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
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)
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  0x00585672 in AbortServer () at ../xorg-server-1.20.0/os/log.c:877                                                                                                                                              
#4  0x00585672 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 0x00536209 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  -0x20(%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:

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  -0x20(%ebp),%xmm0

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing