Bug 94166 - X crashes on start on POWER8/radeon machine
Summary: X crashes on start on POWER8/radeon machine
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/General (show other bugs)
Version: 7.7 (2012.06)
Hardware: Other All
: medium major
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
Depends on:
Reported: 2016-02-15 19:47 UTC by Timothy Pearson
Modified: 2018-06-13 19:25 UTC (History)
0 users

See Also:
i915 platform:
i915 features:

Fix crashes when mastersp is NULL (597 bytes, text/plain)
2016-02-15 19:47 UTC, Timothy Pearson
no flags Details
Fix crashes when mastersp is NULL (795 bytes, text/plain)
2016-02-15 20:10 UTC, Timothy Pearson
no flags Details

Description Timothy Pearson 2016-02-15 19:47:22 UTC
Created attachment 121775 [details]
Fix crashes when mastersp is NULL

On a POWER8 machine under both Debian Jessie and Debian Stretch Xorg crashes on startup when using the radeon driver and a Radeon R9 290X.  Kernel modesetting outside of X appears to function normally.  The crash is also triggered on output change.

The attached patch fixes the crashes, however nothing shows up on the HDMI port when X is started.
Comment 1 Timothy Pearson 2016-02-15 20:10:12 UTC
Created attachment 121776 [details]
Fix crashes when mastersp is NULL
Comment 2 Michel Dänzer 2016-02-16 03:44:02 UTC
Please attach the Xorg log from a crash.
Comment 3 Timothy Pearson 2016-02-16 18:56:14 UTC
While I do not currently have the ability to execute X on the test system (it needs to wait for another maintenance window) this log is extremely similar, down to crashing at the same point in the randr code:

Comment 4 Timothy Pearson 2016-03-02 20:22:56 UTC
(In reply to Michel Dänzer from comment #2)
> Please attach the Xorg log from a crash.

I finally got access to the machine again for testing:
Comment 5 Michel Dänzer 2016-03-07 09:16:13 UTC
Looks like Xorg falls back to the fbdev driver for the ASPEED GPU, because xf86-video-ast isn't installed. But the fbdev driver actually ends up using one of the Radeon GPUs.

If you want to use the ASPEED GPU, installing xf86-video-ast might help. Otherwise, you should be able to prevent the fbdev driver from loading by creating an /etc/X11/xorg.conf with a Section "Device" for at least one of the Radeon GPUs.

The patch should be sent (as a proper Git formatted patch) to the xorg-devel mailing list for review.
Comment 6 Adam Jackson 2018-06-13 19:25:25 UTC
Fixed as of:

commit 2af0a50a4bb9be9f58681d417ceb9a7029caaf3b
Author: Adam Jackson <ajax@redhat.com>
Date:   Wed Feb 28 11:23:41 2018 -0500

    randr: Fix a crash on initialization with GPU screens
    RRSetChanged (immediately above) was immune to screens with no master,
    but RRTellChanged was not:
        Thread 1 "X" received signal SIGSEGV, Segmentation fault.
        RRTellChanged (pScreen=<optimized out>) at ../../randr/randr.c:576
        576             mastersp = rrGetScrPriv(master);
        (gdb) bt
        #0  RRTellChanged (pScreen=<optimized out>) at ../../randr/randr.c:576
        #1  0x000055555566f1e9 in RRNoticePropertyChange (value=0x555555bfbf28, property=70, output=0x555555bfef10) at ../../ra
        #2  RRChangeOutputProperty (output=output@entry=0x555555bfef10, property=<optimized out>, type=type@entry=19, format=fo
rmat@entry=32, mode=<optimized out>, mode@entry=0, len=len@entry=1, value=0x7fffffffe77c, sendevent=1, pending=0)
            at ../../randr/rrproperty.c:263
        #3  0x000055555566dba5 in RROutputSetNonDesktop (output=output@entry=0x555555bfef10, nonDesktop=nonDesktop@entry=0) at 
    Reported-by: Michel Dänzer <michel@daenzer.net>
    Signed-off-by: Adam Jackson <ajax@redhat.com>

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.