Bug 4989 - [ATI/radeon] Hang: "Idle timed out, resetting engine..."
Summary: [ATI/radeon] Hang: "Idle timed out, resetting engine..."
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/Radeon (show other bugs)
Version: git
Hardware: x86 (IA32) Linux (All)
: high major
Assignee: Xorg Project Team
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-11-08 00:02 UTC by Pierre Ossman
Modified: 2008-06-10 03:45 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
xorg.conf (4.00 KB, text/plain)
2005-11-08 00:02 UTC, Pierre Ossman
no flags Details
Xorg.log (49.24 KB, text/plain)
2005-11-08 00:02 UTC, Pierre Ossman
no flags Details
opreport -l (10.30 KB, text/plain)
2005-11-14 20:07 UTC, Pierre Ossman
no flags Details
opreport -c (42.93 KB, text/plain)
2005-11-14 20:08 UTC, Pierre Ossman
no flags Details
Xorg.4.log (45.83 KB, text/plain)
2008-06-09 19:55 UTC, Peter Hutterer
no flags Details

Description Pierre Ossman 2005-11-08 00:02:14 UTC
Sometimes X locks up when I start it. It kills the radeon chip (bios post code
needed to get the panel running again) and doesn't respond to the keyboard. It
also consumes 100% cpu, all in user space. The log is full of:

(EE) RADEON(0): Idle timed out, resetting engine...
Comment 1 Pierre Ossman 2005-11-08 00:02:36 UTC
Created attachment 3731 [details]
xorg.conf
Comment 2 Pierre Ossman 2005-11-08 00:02:49 UTC
Created attachment 3732 [details]
Xorg.log
Comment 3 Pierre Ossman 2005-11-14 20:07:47 UTC
Created attachment 3793 [details]
opreport -l
Comment 4 Pierre Ossman 2005-11-14 20:08:17 UTC
Created attachment 3794 [details]
opreport -c
Comment 5 S. T. 2006-02-13 08:26:07 UTC
This bug has been also reported in the debian bug database:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=346486

If you follow the link there is also a backtrace and some workarounds.

This is debian sarge running 6.9.0.dfsg.1-4.

I just installed the original tarball 6.9. The error is also in the original 
tree.

Comment 6 Erik Andren 2006-04-20 06:07:04 UTC
Are you still experiencing this bug using a more current version of xorg?
Comment 7 Pierre Ossman 2006-04-20 06:15:01 UTC
No, haven't seen it for some time now.
Comment 8 Erik Andren 2006-04-20 06:29:58 UTC
I'm closing this one, if you start to experience the problem again, please reopen.
Comment 9 Peter Hutterer 2008-06-09 19:55:03 UTC
Created attachment 17025 [details]
Xorg.4.log

I see this bug on git master when running compiz and either starting a new window or resizing a window. Doesn't happen when moving a window around.

lspci says:
00:08.0 VGA compatible controller: ATI Technologies Inc RV280 [Radeon 9200 PRO] (rev 01)

The last messages are loads of the following, requiring a hard reset.

(EE) RADEON(0): RADEONWaitForIdleCP: CP idle -22
(EE) RADEON(0): Idle timed out, resetting engine...

I added a return statement into RADEONWaitForIdle so the machine doesn't lock up anymore, but the timout message is of course still there.

whot@hyena:~/X11R7/driver/xf86-video-ati$> git diff
diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c
index 58fe306..dbdaaf5 100644
--- a/src/radeon_commonfuncs.c
+++ b/src/radeon_commonfuncs.c
@@ -705,6 +705,7 @@ void FUNC_NAME(RADEONWaitForIdle)(ScrnInfoPtr pScrn)
 
            xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
                       "Idle timed out, resetting engine...\n");
+            return;
            RADEONEngineReset(pScrn);
            RADEONEngineRestore(pScrn);
Comment 10 Peter Hutterer 2008-06-09 19:55:46 UTC
Reopening bug, I see this timeout error on git master.
Comment 11 Michel Dänzer 2008-06-10 01:42:15 UTC
(In reply to comment #9)
> I added a return statement into RADEONWaitForIdle so the machine doesn't lock
> up anymore, but the timout message is of course still there.

You're saying this change keeps things working despite the timeout messages? If so, the timeout is probably just too short and needs to be extended. Ideally, something like radeon_init_timeout()/radeon_timedout() should be used, to make the actual timeout duration independent of how quickly the various loops are processed.

At any rate, this report originally talked about server startup, so you shouldn't have reopened it but created a new report.
Comment 12 Peter Hutterer 2008-06-10 02:34:59 UTC
On Tue, Jun 10, 2008 at 01:42:19AM -0700, bugzilla-daemon@freedesktop.org wrote:
> --- Comment #11 from Michel Dänzer <michel@tungstengraphics.com>  2008-06-10 01:42:15 PST ---
> (In reply to comment #9)
> > I added a return statement into RADEONWaitForIdle so the machine doesn't lock
> > up anymore, but the timout message is of course still there.
> 
> You're saying this change keeps things working despite the timeout messages? If
> so, the timeout is probably just too short and needs to be extended. 

yes, seems to work fine. I multipled the timeout by 100, but still ran into
the issue, so I figured I'd file a bug instead.

> Ideally, something like radeon_init_timeout()/radeon_timedout() should be
> used, to make the actual timeout duration independent of how quickly the
> various loops are processed.
> 
> At any rate, this report originally talked about server startup, so you
> shouldn't have reopened it but created a new report.

k, I'll move it to a new one.
Comment 13 Peter Hutterer 2008-06-10 03:45:32 UTC
Restoring FIXED resolution, new bug reported as 16292.


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.