Forwarding this report from Ubuntu: https://bugs.edge.launchpad.net/ubuntu/+source/xserver-xorg-video-ati/+bug/276782 "Fresh bits installed 9/30 from daily image of Intrepid, onto a Dell Latitude XT (ATI x1250 GPU, IIRC). xrandr -o left; xrandr -o normal; xrandr -o left Crashes the X server. -- Jim Gettys" Backtrace: 0: /usr/X11R6/bin/X(xf86SigHandler+0x79) [0x80c3069] 1: [0xb806b400] 2: /usr/X11R6/bin/X(xf86ResizeOffscreenLinear+0x3b) [0x80c871b] 3: /usr/lib/xorg/modules/drivers//radeon_drv.so [0xb7ad7f77] 4: /usr/lib/xorg/modules/drivers//radeon_drv.so [0xb7afd15e] 5: /usr/X11R6/bin/X(xf86CrtcRotate+0x328) [0x80f40c8] 6: /usr/X11R6/bin/X(xf86CrtcSetMode+0x403) [0x80eb243] 7: /usr/X11R6/bin/X [0x80f2582] 8: /usr/X11R6/bin/X(RRCrtcSet+0x96) [0x816ce96] 9: /usr/X11R6/bin/X(ProcRRSetScreenConfig+0x4db) [0x8171f1b] 10: /usr/X11R6/bin/X [0x816b5a5] 11: /usr/X11R6/bin/X(Dispatch+0x34f) [0x808c91f] 12: /usr/X11R6/bin/X(main+0x47d) [0x8071d8d] 13: /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7c75685] 14: /usr/X11R6/bin/X [0x8071171] Saw signal 11. Server aborting. I was not able to reproduce the problem on a Dell XPS 1640 with an HD 3670 [1002:95:93], but Jim is easily able to reproduce it on his system. We attempted to attach gdb to the process to get a better trace, but with gdb attached it simply hangs in WaitForSomething().
And as the system is very new, and doesn't have personal files on it yet, I can easily create an account if someone needs to debug remotely...
I suspect there's in issue with the xrandr 1.1 compatibility stuff in the xserver since you are using xrandr -o and your laptop has several outputs. Do you still get the crash if you specify the rotation with xrandr 1.2 API calls? xrandr --output LVDS --rotate left
Still dies with a sequence of xrandr --output LVDS --rotate left xrandr --output LVDS --rotate right xrandr --output LVDS --rotate normal xrandr --output LVDS --rotate inverted After some number of these, the X server is still crashing...
Can you start the xserver in gdb rather than attaching to the running process? It'd be nice to get a backtrace. Unfortunately, I can't reproduce it here. It looks like it may be related the dixLookupPrivate changes.
OK, that worked. Here's the backtrace... #0 dixLookupPrivate (privates=0x198, key=0x81df2d8) at ../../dix/privates.c:131 rec = <value optimized out> ptr = <value optimized out> #1 0x080c871b in xf86ResizeOffscreenLinear (resize=0x96a7c58, size=1024000) at ../../../../hw/xfree86/common/xf86fbman.c:199 No locals. #2 0xb79f0f77 in radeon_allocate_memory (pScrn=0x968bf58, mem_struct=0x96a6480, size=4096000, align=4096) at ../../src/radeon_memory.c:61 linear = <value optimized out> pScreen = (ScreenPtr) 0x96a8458 info = <value optimized out> offset = <value optimized out> #3 0xb7a1615e in radeon_crtc_shadow_allocate (crtc=0x96a62a0, width=1280, height=800) at ../../src/radeon_crtc.c:421 pScrn = (ScrnInfoPtr) 0x198 rotate_offset = <value optimized out> #4 0x080f40c8 in xf86CrtcRotate (crtc=0x96a62a0, mode=0xbfa89870, rotation=4) at ../../../../hw/xfree86/modes/xf86Rotate.c:607 shadowData = <value optimized out> shadow = (PixmapPtr) 0x0 width = 1280 height = 800 old_width = 0 old_height = 0 pScrn = <value optimized out> pScreen = (ScreenPtr) 0x96a8458 crtc_to_fb = {matrix = {{-65536, 0, 83886080}, {0, -65536, 52428800}, { 0, 0, 65536}}} fb_to_crtc = {matrix = {{-65536, 0, 83886080}, {0, -65536, 52428800}, { 0, 0, 65536}}} #5 0x080eb243 in xf86CrtcSetMode (crtc=0x96a62a0, mode=0xbfa89870, rotation=408, x=0, y=0) at ../../../../hw/xfree86/modes/xf86Crtc.c:312 scrn = (ScrnInfoPtr) 0x968bf58 i = <value optimized out> ret = <value optimized out> didLock = 0 adjusted_mode = (DisplayModePtr) 0x9897d40 saved_mode = {prev = 0x0, next = 0x0, name = 0x0, status = MODE_OK, type = 0, Clock = 71450, HDisplay = 1280, HSyncStart = 1301, HSyncEnd = 1333, HTotal = 1460, HSkew = 0, VDisplay = 800, VSyncStart = 804, VSyncEnd = 808, VTotal = 816, VScan = 0, Flags = 10, ClockIndex = 0, SynthClock = 0, CrtcHDisplay = 1280, CrtcHBlankStart = 1280, CrtcHSyncStart = 1301, CrtcHSyncEnd = 1333, CrtcHBlankEnd = 1460, CrtcHTotal = 1460, CrtcHSkew = 0, CrtcVDisplay = 800, CrtcVBlankStart = 800, CrtcVSyncStart = 804, CrtcVSyncEnd = 808, CrtcVBlankEnd = 816, CrtcVTotal = 816, CrtcHAdjusted = 0, CrtcVAdjusted = 0, PrivSize = 0, Private = 0x0, PrivFlags = 0, HSync = 0, VRefresh = 0} saved_x = 0 saved_y = 0 saved_rotation = 1 #6 0x080f2582 in xf86RandR12CrtcSet (pScreen=0x96a8458, randr_crtc=0x96a90a8, randr_mode=0x96a9930, x=0, y=0, rotation=408, num_randr_outputs=1, randr_outputs=0xbfa89a30) at ../../../../hw/xfree86/modes/xf86RandR12.c:769 mode = {prev = 0x0, next = 0x0, name = 0x0, status = MODE_OK, type = 0, Clock = 71450, HDisplay = 1280, HSyncStart = 1301, HSyncEnd = 1333, HTotal = 1460, HSkew = 0, VDisplay = 800, VSyncStart = 804, VSyncEnd = 808, VTotal = 816, VScan = 0, Flags = 10, ClockIndex = 0, SynthClock = 0, CrtcHDisplay = 1280, CrtcHBlankStart = 1280, CrtcHSyncStart = 1301, CrtcHSyncEnd = 1333, CrtcHBlankEnd = 1460, CrtcHTotal = 1460, CrtcHSkew = 0, CrtcVDisplay = 800, CrtcVBlankStart = 800, CrtcVSyncStart = 804, CrtcVSyncEnd = 808, CrtcVBlankEnd = 816, CrtcVTotal = 816, CrtcHAdjusted = 0, CrtcVAdjusted = 0, PrivSize = 0, Private = 0x0, PrivFlags = 0, HSync = 0, VRefresh = 0} pScrn = (ScrnInfoPtr) 0x968bf58 crtc = (xf86CrtcPtr) 0x96a62a0 changed = 1 o = <value optimized out> ro = <value optimized out> save_enabled = 1 #7 0x0816ce96 in RRCrtcSet (crtc=0x96a90a8, mode=0x96a9930, x=0, y=0, rotation=<value optimized out>, numOutputs=1, outputs=0xbfa89a30) at ../../randr/rrcrtc.c:302 pScreen = (ScreenPtr) 0x96a8458 ret = <value optimized out> #8 0x08171f1b in ProcRRSetScreenConfig (client=0x9899108) at ../../randr/rrscreen.c:922 rep = {type = 8 '\b', status = 145 '\221', sequenceNumber = 2441, length = 136311872, newTimestamp = 3215497816, newConfigTimestamp = 135622986, root = 136311876, subpixelOrder = 39476, pad4 = 49064, pad5 = 159968648, pad6 = 23} pDraw = (DrawablePtr) 0x96fec20 rc = <value optimized out> pScreen = (ScreenPtr) 0x96a8458 pScrPriv = (rrScrPrivPtr) 0x96a9f78 time = {months = 0, milliseconds = 8555932} i = 0 rate = 60 has_rate = 1 output = (RROutputPtr) 0x96aa128 crtc = (RRCrtcPtr) 0x96a90a8 mode = (RRModePtr) 0x96a9930 pData = (RR10DataPtr) 0x96e72f8 pSize = (RRScreenSizePtr) 0x96e730c width = 1280 height = 800 #9 0x0816b5a5 in ProcRRDispatch (client=0x198) at ../../randr/randr.c:476 No locals. #10 0x0808c91f in Dispatch () at ../../dix/dispatch.c:454 result = <value optimized out> client = (ClientPtr) 0x9899108 nready = 0 start_tick = 3400 #11 0x08071d8d in main (argc=1, argv=0xbfa89ba4, envp=Cannot access memory at address 0x1a0 ) at ../../dix/main.c:441 i = <value optimized out> error = 136146932 xauthfile = <value optimized out> alwaysCheckForInput = {0, 1} (gdb)
FWIW: this time, before crashing, it put some trash on the screen; clearly pixmaps that don't belong on the screen.... Something is trashing memory allocation.
Does this also happen with EXA rather than XAA?
Yes. Still crashes.
if you are running a git based version of ati can you try again with 6.9.0?
Is this still an issue with xf86-video-ati from git master or a newer xserver?
closing due to lack of feedback.
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.