Bug 110757 - Iris fails to start with new disk cache
Summary: Iris fails to start with new disk cache
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/Iris (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Intel 3D Bugs Mailing List
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-05-25 00:13 UTC by Mike Lothian
Modified: 2019-05-28 20:41 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
attachment-9998-0.html (2.62 KB, text/html)
2019-05-28 11:12 UTC, Mike Lothian
Details

Description Mike Lothian 2019-05-25 00:13:01 UTC
I've captured a gdb backtrace when starting glxgears


(gdb) run
Starting program: /usr/bin/glxgears
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
glxgears: ../mesa-9999/src/gallium/drivers/iris/iris_disk_cache.c:240: iris_disk_cache_init: Assertion `note && build_id_length(note) == 20' failed.

Program received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff7976535 in __GI_abort () at abort.c:79
#2  0x00007ffff797640f in __assert_fail_base (fmt=0x7ffff7aea640 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x7ffff70a6690 "note && build_id_length(note) == 20", file=0x7ffff70a6658 "../mesa-9999/src/gallium/drivers/iris/iris_disk_cache.c",
    line=240, function=<optimized out>) at assert.c:92
#3  0x00007ffff79848a2 in __GI___assert_fail (assertion=assertion@entry=0x7ffff70a6690 "note && build_id_length(note) == 20", file=file@entry=0x7ffff70a6658 "../mesa-9999/src/gallium/drivers/iris/iris_disk_cache.c", line=line@entry=240,
    function=function@entry=0x7ffff70a66e0 <__PRETTY_FUNCTION__.40902> "iris_disk_cache_init") at assert.c:101
#4  0x00007ffff6c3fa56 in iris_disk_cache_init (screen=screen@entry=0x5555555d1fc0) at ../mesa-9999/src/gallium/drivers/iris/iris_disk_cache.c:250
#5  0x00007ffff6c3f70a in iris_screen_create (fd=<optimized out>, config=config@entry=0x7fffffffc9b0) at ../mesa-9999/src/gallium/drivers/iris/iris_screen.c:651
#6  0x00007ffff66649ee in iris_drm_screen_create (fd=<optimized out>, config=0x7fffffffc9b0) at ../mesa-9999/src/gallium/winsys/iris/drm/iris_drm_winsys.c:33
#7  0x00007ffff646a7c9 in pipe_iris_create_screen (fd=<optimized out>, config=<optimized out>) at ../mesa-9999/src/gallium/auxiliary/target-helpers/drm_helper.h:47
#8  0x00007ffff6517628 in pipe_loader_drm_create_screen (dev=<optimized out>, config=<optimized out>) at ../mesa-9999/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c:304
#9  0x00007ffff651711f in pipe_loader_create_screen (dev=0x5555555cff60) at ../mesa-9999/src/gallium/auxiliary/pipe-loader/pipe_loader.c:128
#10 0x00007ffff646e675 in dri2_init_screen (sPriv=0x5555555ce490) at ../mesa-9999/src/gallium/state_trackers/dri/dri2.c:1956
#11 0x00007ffff646bfc6 in driCreateNewScreen2 (scrn=0, fd=4, extensions=0x7ffff7e59aa0 <loader_extensions>, driver_extensions=<optimized out>, driver_configs=0x7fffffffd3e0, data=0x555555581a30) at ../mesa-9999/src/mesa/drivers/dri/common/dri_util.c:153
#12 0x00007ffff7e2f1d7 in dri3_create_screen (screen=0, priv=0x55555557abc0) at ../mesa-9999/src/glx/dri3_glx.c:896
#13 0x00007ffff7e1bd94 in AllocAndFetchScreenConfigs (dpy=dpy@entry=0x55555556de70, priv=priv@entry=0x55555557abc0) at ../mesa-9999/src/glx/glxext.c:823
#14 0x00007ffff7e1c11e in __glXInitialize (dpy=dpy@entry=0x55555556de70) at ../mesa-9999/src/glx/glxext.c:949
#15 0x00007ffff7e181b9 in GetGLXPrivScreenConfig (dpy=dpy@entry=0x55555556de70, scrn=scrn@entry=0, ppriv=ppriv@entry=0x7fffffffd4e0, ppsc=ppsc@entry=0x7fffffffd4e8) at ../mesa-9999/src/glx/glxcmds.c:174
#16 0x00007ffff7e188f9 in glXChooseVisual (dpy=0x55555556de70, screen=0, attribList=0x7fffffffd730) at ../mesa-9999/src/glx/glxcmds.c:1262
#17 0x00005555555567df in make_window (dpy=0x55555556de70, name=0x5555555590cf "glxgears", x=0, y=0, width=300, height=300, winRet=0x7fffffffd8b0, ctxRet=0x7fffffffd8b8, visRet=0x7fffffffd8c0) at glxgears.c:520
#18 0x0000555555558302 in main (argc=1, argv=0x7fffffffd9d8) at glxgears.c:777

If there's anything else I can do to get more info out, please let me know
Comment 1 Tapani Pälli 2019-05-28 06:19:01 UTC
I'm not able to reproduce this, could you attach information on how your system/environment looks like? As example what kind of machine is used and options given to Mesa build.
Comment 2 Tapani Pälli 2019-05-28 07:32:56 UTC
This might happen if you have custom linker flags, you should make sure you have "-Wl,--build-id=sha1" included in linker args.
Comment 3 Tapani Pälli 2019-05-28 07:51:20 UTC
Please send also output of "eu-readelf -n iris_dri.so", it should say something like:

--- 8< ---
Note section [ 1] '.note.gnu.build-id' of 36 bytes at offset 0x238:
  Owner          Data size  Type
  GNU                   20  GNU_BUILD_ID
    Build ID: 69c825313091a22c6f34df5185c209236d127839
--- 8< ---
Comment 4 Mike Lothian 2019-05-28 10:48:41 UTC
Neither iris or radeonsi had anything

This patch makes everything work though...

--- a/src/gallium/targets/dri/meson.build
+++ b/src/gallium/targets/dri/meson.build
@@ -46,7 +46,7 @@ libgallium_dri = shared_library(
   ],
   c_args : [c_vis_args],
   cpp_args : [cpp_vis_args],
-  link_args : [ld_args_gc_sections, gallium_dri_ld_args],
+  link_args : [ld_args_build_id, ld_args_gc_sections, gallium_dri_ld_args],
   link_depends : gallium_dri_link_depends,
   link_with : [
     libmesa_gallium, libdricommon, libmegadriver_stub, libdri, libgalliumvl,


Might be overkill if it's just iris that needs this
Comment 5 Tapani Pälli 2019-05-28 11:10:08 UTC
(In reply to Mike Lothian from comment #4)
> Neither iris or radeonsi had anything
> 
> This patch makes everything work though...
> 
> --- a/src/gallium/targets/dri/meson.build
> +++ b/src/gallium/targets/dri/meson.build
> @@ -46,7 +46,7 @@ libgallium_dri = shared_library(
>    ],
>    c_args : [c_vis_args],
>    cpp_args : [cpp_vis_args],
> -  link_args : [ld_args_gc_sections, gallium_dri_ld_args],
> +  link_args : [ld_args_build_id, ld_args_gc_sections, gallium_dri_ld_args],
>    link_depends : gallium_dri_link_depends,
>    link_with : [
>      libmesa_gallium, libdricommon, libmegadriver_stub, libdri, libgalliumvl,
> 
> 
> Might be overkill if it's just iris that needs this

Right, I have same patch for iris but I was a bit confused why it works for me + others. Maybe it's just that efault is configured differently with different toolchains, manual page of ld says that  "If style is omitted, "sha1" is used.".
Comment 6 Mike Lothian 2019-05-28 11:12:34 UTC
Created attachment 144361 [details]
attachment-9998-0.html

I have --hash-style=gnu set

On Tue, 28 May 2019, 12:10 , <bugzilla-daemon@freedesktop.org> wrote:

> *Comment # 5 <https://bugs.freedesktop.org/show_bug.cgi?id=110757#c5> on
> bug 110757 <https://bugs.freedesktop.org/show_bug.cgi?id=110757> from
> Tapani Pälli <lemody@gmail.com> *
>
> (In reply to Mike Lothian from comment #4 <https://bugs.freedesktop.org/show_bug.cgi?id=110757#c4>)> Neither iris or radeonsi had anything
> >
> > This patch makes everything work though...
> >
> > --- a/src/gallium/targets/dri/meson.build
> > +++ b/src/gallium/targets/dri/meson.build
> > @@ -46,7 +46,7 @@ libgallium_dri = shared_library(
> >    ],
> >    c_args : [c_vis_args],
> >    cpp_args : [cpp_vis_args],
> > -  link_args : [ld_args_gc_sections, gallium_dri_ld_args],
> > +  link_args : [ld_args_build_id, ld_args_gc_sections, gallium_dri_ld_args],
> >    link_depends : gallium_dri_link_depends,
> >    link_with : [
> >      libmesa_gallium, libdricommon, libmegadriver_stub, libdri, libgalliumvl,
> >
> >
> > Might be overkill if it's just iris that needs this
>
> Right, I have same patch for iris but I was a bit confused why it works for me
> + others. Maybe it's just that efault is configured differently with different
> toolchains, manual page of ld says that  "If style is omitted, "sha1" is
> used.".
>
> ------------------------------
> You are receiving this mail because:
>
>    - You are on the CC list for the bug.
>    - You reported the bug.
>
>
Comment 7 Tapani Pälli 2019-05-28 11:15:56 UTC
(In reply to Mike Lothian from comment #6)
> Created attachment 144361 [details]
> attachment-9998-0.html
> 
> I have --hash-style=gnu set
> 

OK cool, makes sense. IMO your patch looks fine, please send MR (or just patch to list)!
Comment 9 Mike Lothian 2019-05-28 11:58:34 UTC
I've created https://gitlab.freedesktop.org/mesa/mesa/merge_requests/961

Do I have to send an email to the list too? This is my first patch via MR
Comment 10 Kenneth Graunke 2019-05-28 20:41:35 UTC
Thanks Mike!  I pushed your patch.  Fixed by:

commit 29ea92e6a1e8f5cb3295011d907ea211d6f8f644
Author: Mike Lothian <mike@fireburn.co.uk>
Date:   Tue May 28 12:26:21 2019 +0100

    meson: Link Gallium drivers with ld_args_build_id


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.