Bug 78253

Summary: Increasingly slow and jerky performance over time while playing WoW
Product: xorg Reporter: Chris Rankin <rankincj>
Component: Driver/RadeonAssignee: xf86-video-ati maintainers <xorg-driver-ati>
Status: RESOLVED MOVED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Chris Rankin 2014-05-04 13:55:44 UTC
When playing WoW for several hours, I notice that the game-play becomes increasingly jerky over time. Once this effect has become noticeable, the game takes longer to exit as well - often several minutes. There is no response to either keyboard or mouse movements during this interval, although the box seems to behave normally enough when eventually the (full-screen) game window disappears and my desktop returns.

When I attached gdb to the X server during one particularly unresponsive interval, I discovered that it was looping in DRI2DrawableGone: 

0x00000000005732b4 in DRI2DrawableGone (p=0x1de81e0, id=1117964837) at dri2.c:382
382         xorg_list_for_each_entry_safe(ref, next, &pPriv->reference_list, link) {

This is with a Radeon HD4890 / 3.14.2 / x86_64, although the problem has actually existed for several months.

(gdb) bt
#0  0x00000000005732b4 in DRI2DrawableGone (p=0x1de81e0, id=1117964837) at dri2.c:382
#1  0x000000000045cd92 in doFreeResource (res=res@entry=0x35b93c0, skip=skip@entry=0) at resource.c:873
#2  0x000000000045df47 in FreeClientResources (client=client@entry=0x27415d0) at resource.c:1139
#3  0x00000000004396ef in CloseDownClient (client=client@entry=0x27415d0) at dispatch.c:3402
#4  0x000000000043a33e in Dispatch () at dispatch.c:444
#5  0x00000000004288da in main (argc=12, argv=0x7fffc5b26e38, envp=<optimized out>) at main.c:298
Comment 1 Chris Rankin 2014-05-04 13:57:29 UTC
I am currently using the radeon driver from git, with this commit as HEAD:

commit 06e3c8c53ef4bd159f5864eabf726438d008b49a
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Apr 23 13:39:42 2014 +1000

    radeon: fix use-after-free in modesetting cleanup
Comment 2 Michel Dänzer 2014-05-08 03:25:18 UTC
(In reply to comment #2)
> When I attached gdb to the X server during one particularly unresponsive
> interval, I discovered that it was looping in DRI2DrawableGone: 

Are you sure it's looping in DRI2DrawableGone itself, not in one of its callers? You can use the gdb command 'finish' to see how long it takes to finish execution of the current function.
Comment 3 Martin Peres 2019-11-19 07:46:30 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati/issues/102.

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.