Bug 78916 - RENDER hangs on r128 PCI multiheaded box; need way to turn off RENDER
Summary: RENDER hangs on r128 PCI multiheaded box; need way to turn off RENDER
Alias: None
Product: Fedora
Classification: Fedora
Component: XFree86
Version: 2
Hardware: i686
OS: Linux
Target Milestone: ---
Assignee: Mike A. Harris
QA Contact: David Lawrence
Depends On:
Blocks: 82779
TreeView+ depends on / blocked
Reported: 2002-12-03 15:16 UTC by Frank Ch. Eigler
Modified: 2007-11-30 22:10 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2004-09-01 02:56:22 UTC
Type: ---

Attachments (Terms of Use)
XF86Config (7.55 KB, text/plain)
2002-12-03 15:18 UTC, Frank Ch. Eigler
no flags Details
XFree86.0.log (37.09 KB, text/plain)
2002-12-03 15:19 UTC, Frank Ch. Eigler
no flags Details
lspci -v output (3.00 KB, text/plain)
2002-12-03 15:20 UTC, Frank Ch. Eigler
no flags Details
Log of XFree86 startup with r128 driver (26.30 KB, text/plain)
2002-12-10 03:47 UTC, William J. Earl
no flags Details

Description Frank Ch. Eigler 2002-12-03 15:16:55 UTC
Description of problem:
XFree86 with RENDER has never worked properly on my machine, right from 4.0+,
through current 4.2.0 as shipped with RHL8.  During heavy RENDER-related
activity, such as lots of scrolly gnome-terminals with mouse movement, the X
server just hangs.  (The kernel and other processes usually continue to run.)

Some peculiarities with my setup:
- the machine has two r128 "All-In-Wonder 32 PCI" cards, and a motherboard i810e
- my normal X configuration is to have the two r128 PCI cards drive two
monitors, and the 810e part not being activated at all.  This does not seem to
matter to the bug: one r128 with one 810e still produce hangs.
- I usually enable xinerama; the hangs occur with or without xinerama
- I played with lots of configuration parameters like XFree86 driver options. 
No permutation proved stable with RHL 8.

The only parameter that seems constant is RENDER.  With RHL 8, every dog & cat
uses it to plop text on the screen, so the hangs have occurred sometimes within
seconds, usually within minutes of regular X usage.  I can't see an X server or
application configuration that turns off RENDER availability/use, so I was stuck.

I finally came up with a workaround: I disabled the RENDER extension in the
server by binary-editing the XFree86 executable, to rename RENDER -> RENDAR or
somesuch.  Now clients don't find the extension, so don't try to use it.  No
hangs have occurred since then.

So, if these r128 RENDER hangs prove too complex to solve outright, please add
an XFree86 option to disable RENDER by more palatable means.

How reproducible:

Steps to Reproduce:
See above; I don't have a reproduction recipe.  It may require multiple PCI r128
cards, and may or may not relate to an i810e motherboard.

Additional info:
I will attach my current xf86 config and log files, and lspci.

Comment 1 Frank Ch. Eigler 2002-12-03 15:18:58 UTC
Created attachment 87227 [details]

Comment 2 Frank Ch. Eigler 2002-12-03 15:19:40 UTC
Created attachment 87228 [details]

Comment 3 Frank Ch. Eigler 2002-12-03 15:20:12 UTC
Created attachment 87229 [details]
lspci -v output

Comment 4 Frank Ch. Eigler 2002-12-03 15:26:01 UTC
Here is an additional data point.  At one point while investigating this
problem, xfree86 regularly hung with XFree86.0.log messages of the form
"R128(0) ... engine idle timeout ... resetting".  This specific form of
a hang went away when I overrode BIOS PCI interrupt settings to the two
PCI r128 cards, to give them distinct interrupt lines.  This configuration
hange appeared to become necessary only with the XFree86 version provided
with RHL 8.0, not with 7.2.

Comment 5 Mike A. Harris 2002-12-05 12:56:46 UTC
Cc'ing alan/arjan in case they can offer any comments

Comment 6 Alan Cox 2002-12-05 16:17:15 UTC
The IRQ is only used for direct render and DRI - so it would be interesting to
know what is happening there. Otherwise I don't see any obvious reasons for
problems beyond X server or hw bugs (pci deadlocks, incorrect resource handling
in X etc)

Comment 7 William J. Earl 2002-12-10 03:45:20 UTC
   I have been having a very similar problem on my system with RedHat 8.0.

Here is my card:

  Bus  0, device   9, function  0:
    VGA compatible controller: ATI Technologies Inc Rage 128 PP/PRO TMDS 
(rev 0).
      IRQ 11.
      Master Capable.  Latency=32.  Min Gnt=8.
      Prefetchable 32 bit memory at 0xd4000000 [0xd7ffffff].
      I/O at 0xdc00 [0xdcff].
      Non-prefetchable 32 bit memory at 0xd9000000 [0xd9003fff].

If I use the default configuration, from the 8.0 installer, the X server
starts looping if I do something which involves a lot of bitblts, such
an opaque window move or resize, or popping up various emacs menus (which
fall outside the main emacs window).  Sometimes the X server loops,
but I can access the machine over the network.  Sometimes the X server
hangs the machine completely, and turns off video refresh, so the monitor
goes to power saving mode.  If I can access the machine, I can kill the
X server, but then the restarted X server just hangs again.  I will attach
the X server configuration.  Note that I can completely avoid the problem
by using the "VESA generic" (essentially "SVGA") driver, at some cost in
performance and visual clarity.

Comment 8 William J. Earl 2002-12-10 03:47:19 UTC
Created attachment 88145 [details]
Log of XFree86 startup with r128 driver

Comment 9 Mike A. Harris 2002-12-27 06:13:52 UTC
fche) With the official binaries (not your edited version), does disabling
DRI in the config file make the problem go away?  Just comment out
the Load "dri" line and restart.

Does that work?

Comment 10 Frank Ch. Eigler 2002-12-27 11:30:10 UTC
Nope, DRI does not appear related.  The server used to hang the same way
with or without DRI loaded.

Comment 11 Frank Ch. Eigler 2003-06-26 02:28:37 UTC
The newest XFree86-4.2.1-20 rpm still has this problem.
The same trick (hex-editing /usr/X11R6/bin/XFree86 s/RENDER/RENDAR/)
still works.

Comment 12 Frank Ch. Eigler 2003-08-04 19:12:08 UTC
Likewise for XFree86-4.2.1-21.  Given that fixing the real
bug is likely too hard, can you at least arrange to add a
"-norender" flag or somesuch to XFree86, so I don't have to
hand-edit the server binary every time an up2date goes a
little too far?

Comment 13 Frank Ch. Eigler 2003-11-18 22:16:05 UTC
An additional data point.  Similar flavoured hangs occur on a
different machine (using 3 Matrox Millennium II cards) running Fedora
Core 1.  After binary-editing the XFree86 binary in the exact same
way, the server is stable.  It could be a coincidence, or it could be
a sign that multiheaded machines don't play well with RENDER.

Comment 14 Frank Ch. Eigler 2004-07-06 15:00:06 UTC
This annoying bug is still present in Fedora Core 2, with
yet another different hardware configuration.
Please provide a supported method to turn off RENDER until
the underlying bug is fixed.

Comment 15 Alan Cox 2004-07-06 16:36:00 UTC
Turning off Render would make a nasty mess of several thigns we ship.
A flag to turn off Render *ACCELERATION* for the card would make
sense, although it probably belongs upstream now we have X.org and a
sane contributor process

Comment 16 Frank Ch. Eigler 2004-07-06 16:39:38 UTC
I was only ever talking about render acceleration (the RENDER X11

Comment 17 Mike A. Harris 2004-07-06 16:50:08 UTC
The RENDER extension, and "RENDER acceleration" are two completely
different things.  The RENDER extension provides extended
functionality over core X11 protocol.  "RENDER acceleration" is a
feature (or lack thereof) in a given driver for accelerating the
RENDER operations.  The ATI Rage 128 (r128) driver does not
have any RENDER acceleration functions.

I agree with Alan above, about the configuration option request,
which should be an upstream request.  Feel free to file a bug report
upstream at http://bugs.freedesktop.org if you wish, requesting
a new commandline option that disables the RENDER extension.

I agree with Alan again though, that it would make our desktop a
mess however.

I've attempted to reproduce the problem described here in the past
unsuccessfully, so it's probably a good idea to also file this bug
upstream as well, as there don't seem to be many people who
experience this problem recorded in bugzilla.  If it's upstream,
there's a higher chance someone might be able to reproduce it and
investigate the issue.

If you paste the upstream bug report URLs here, I'll also track
the issue upstream.

Comment 18 Frank Ch. Eigler 2004-07-06 17:25:28 UTC

Comment 19 Mike A. Harris 2004-09-01 02:52:27 UTC
Kevin Martin implemented a new config file option set for disabling
extensions.  Currently, it supports ability to disable the COMPOSITE,
and RENDER extensions, and possibly others as well.  The details of
which can be found in X.Org documentation, or in the source code,
google, mailing lists, etc....

Closing as "RAWHIDE".

Note You need to log in before you can comment on or make changes to this bug.