[Mesa-dev] [Bug 110884] can't start GDM when building mesa master branch with LTO

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Jun 17 20:16:12 UTC 2019


https://bugs.freedesktop.org/show_bug.cgi?id=110884

--- Comment #8 from Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com> ---
That MR landed.

Patch that fix the issue here is

commit 397d1a18ef78ddf46efda44d6783105f9fd87f7e
Author: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Date:   Wed Jun 12 15:32:30 2019 -0700

    llvmpipe: Don't use u_ringbuffer for lp_scene_queue

    Inline the ring buffer and signal logic into lp_scene_queue instead of
    using a u_ringbuffer.  The code ends up simpler since there's no need
    to handle serializing data from / to packets.

    This fixes a crash when compiling Mesa with LTO, that happened because
    of util_ringbuffer_dequeue() was writing data after the "header
    packet", as shown below

        struct scene_packet {
           struct util_packet header;
           struct lp_scene *scene;
        };

        /* Snippet of old lp_scene_deque(). */
        packet.scene = NULL;
        ret = util_ringbuffer_dequeue(queue->ring,
                                      &packet.header,
                                      sizeof packet / 4,
        return packet.scene;

    but due to the way aliasing analysis work the compiler didn't
    considered the "&packet->header" to alias with "packet->scene".  With
    the aggressive inlining done by LTO, this would end up always
    returning NULL instead of the content read by
    util_ringbuffer_dequeue().

    Issue found by Marcos Simental and Thiago Macieira.

    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110884
    Reviewed-by: Roland Scheidegger <sroland at vmware.com>

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20190617/f3ba190b/attachment.html>


More information about the mesa-dev mailing list