tech-x11 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

X server over-consuming CPU time?



Hi,

I (or rather work) have a Lenovo T60 laptop which I have over time
upgraded to NetBSD/i386 5.0_RC3, or more precisely the netbsd-5 code
as of Mar 21st.  This laptop has an ATI Mobility Radeon X1400 graphics
controller.

On this machine I have three working X11 setups:

  in /usr/X11R6, built in the 4.99.48 era
  in /usr/X11R7, the newest bits on netbsd-5
  in /usr/pkg, an x.org installation from the time before x.org
               was available in-tree, file says "for NetBSD 5.0",
               since then updated to ... 2008Q4(?)

In the X11R6 case, I have an XF86Config file which specifies use of
the 'vesa' driver, while for the two others, I have an xorg.conf which
specifies use of the "ati" driver, which is a shim, and it ends up
using the "radeon" driver.  I have also attempted to direct it to use
the "radeonhd" driver directly, which doesn't seem to make much of a
difference to what I'm seeing.

I know this is tending towards comparing apples and oranges, since
there are many variables involved here, but please bear with me.

What I experience is that both the X11R7 and the pkgsrc X servers
consume inordinate amounts of CPU time compared to the X11R6 X server.
This can typically be seen when viewing relatively complex web pages
in firefox.  The same effect of "CPU usage spiking" can be seen when
temporarily switching to another desktop and back again where the
firefox browser is running.  The symptom is also that window focus can
be laggy (up to 2-3 seconds), and that it takes a long time for the
window manager to get attention from the X server.  Running "systat v"
and "top" confirms that the "Xorg" process consumes the majority of
the CPU time on one of the two cores in the CPU of the laptop.
Nothing like this is observed with the X11R6 server.

And ... yes, before anyone asks, I have version 1.1.1.1.2.1 of
xsrc/external/mit/xorg-server/dist/Xexc/sync.c in my source tree, and
it's part of the server installed in X11R7.  Regrettably, there's no
RCS ID strings in the server executable (Xorg) to validate that claim,
but at least the X server executable post-dates my CVS update by 12+
hours, so I'm pretty sure this fix (from revision 1.2 of the same
file) is included, and my build log confirms that it was rebuilt.

Does this match up with something others are observing?

Any clues as to how one might go about narrowing down the cause, short
of profiling the X server?  How would one go about doing that, BTW?

I'll admit that both the X11R7 and the pkgsrc X servers are in fact so
CPU-hog-happy so as to be close to unusable on the T60, so it was with
a sigh of releif I got back to my trusty old IBM/Lenovo T41p running
4.0 with XFree86 version 4.5 and the ati -> radeon driver after a
recent hardware repair.

Regards,

- Håvard


Home | Main Index | Thread Index | Old Index