Bug 16812 - X hang at random while using GL app with mach64 with "timeout waiting for buffers"
Summary: X hang at random while using GL app with mach64 with "timeout waiting for buf...
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/other (show other bugs)
Version: DRI git
Hardware: Other All
: medium critical
Assignee: Default DRI bug account
QA Contact:
Depends on:
Reported: 2008-07-23 01:03 UTC by Olivier Valentin
Modified: 2019-10-14 13:20 UTC (History)
0 users

See Also:
i915 platform:
i915 features:

The end of kern.log that seems to happen just before it hangs (6.04 KB, text/x-log)
2008-07-23 01:03 UTC, Olivier Valentin
no flags Details

Description Olivier Valentin 2008-07-23 01:03:35 UTC
Created attachment 17831 [details]
The end of kern.log that seems to happen just before it hangs

I compiled mach64 drm module from git, libopengl and the dri xorg module (still mach64).

After playing a little with an opengl app, the screen goes black and nothing responds. The machine seems not completely hang, but X prevents any further action but rebooting.

The kernel log ends with the following message:
Jul 23 07:55:04 chibchas kernel: [  451.014390] [drm:mach64_freelist_get] *ERROR* timeout waiting for buffers: ring head_addr: 0x50000e80 head: 928 tail: 1440
Jul 23 07:55:04 chibchas kernel: [  451.014400] [drm:mach64_dma_dispatch_vertex] *ERROR* couldn't get buffer

My dist/level is an unstable debian freshly dist-upgraded.

I use EXA.

The card is a "ATI Technologies Inc Rage Mobility P/M AGP 2x (rev 64)"

I'll try to give a X log.
Comment 1 Olivier Valentin 2008-07-23 01:25:28 UTC
I said screen goes black... I was wrong, it just freezes and I still see the last image of my game.

It happens even using XAA.

There is nothing special at the end of the X log (it seems to really hang and never realize it).
Comment 2 Olivier Valentin 2008-07-24 04:47:48 UTC
I located the failing condition in shared-core/mach64_dma.c:1652, from what I understand, the code waits up to 1 second to acquire a free message structure from a ring. But in my case this sometimes fails.

Then I tried to give a true value to MACH64_EXTRA_CHECKING in shared-core/mach64_drv.h, and since then, I was unable to make it freeze again.
Which looks quite insane since this flag is intended to detect problems and when it detects one, at least prints a message. But there is no message !
So this sounds like it fixes by "adding a delay" or by side effects !

Comment 3 Martin Peres 2019-10-14 13:20:09 UTC

Freedesktop's Bugzilla instance is EOLed and open bugs are about to be migrated to http://gitlab.freedesktop.org.

To avoid migrating out of date bugs, I am now closing all the bugs that did not see any activity in the past year. If the issue is still happening, please create a new bug in the relevant project at https://gitlab.freedesktop.org/drm (use misc by default).

Sorry about the noise!

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.