[Xquartz-dev] xquarz uses 100% of CPU when not focused

George Peter Staplin georgeps at xmission.com
Mon Feb 9 10:08:18 PST 2009


Quoted Gene Selkov <selkovjr at gmail.com>:

> I started a bare xterm as suggested and worked for a couple hours with
> the osx apps, occasionally using that xterm as well. Everything was
> cool. Literally. The CPU temperature remained in the lower forties
> (C), and the fan didn't come on even momentarily.
>
> Then I started icewm and gimp, and spent about 10 minutes abusing the
> latter. I know how to break it simply by drawing lines with a stylus.
> But that's a different story, I just want to comment that breaking
> gimp under icewm appeared to be somewhat more difficult that under
> quartzwm. It tends to break when it draws a continuous line too
> quickly and for too long -- to the point that the undo operation
> doesn't completely erased the line; it only erases random rectangular
> panels, leaving other panels unerased.
>
> Then, after 10 minutes, I noticed the 100% load by X11. Killing icewm
> brought it back to idle, and there it stayed for maybe another hour of
> gimp abuse, and everything was cool. I must also mention that without
> any wm, gimp worked even smoother.

That's odd, and of course shouldn't be happening.  This may explain  
why I haven't seen it.

> Then I started icewm again to rearrange the windows, and killed it
> again as soon as the windows were in the right pusitions. The load
> went up to 100% again and never came back to idle. Killing gimp didn't
> bring it back to idle either. So it remained at 100% with the sole
> xterm running. Killing X11 was enough to cool it down, but starting it
> again with a single xterm and no wm brought it back to 100%.
>
> So this sort of confirms the report that it is possible to have the
> hot idle effect with a sole xterm and no wm. I havenr't obesrved it
> long enough to know if it would ever arise without more sophisticated,
> albeit transient, use of X11; and I don't know enough to say whether
> wm has anything to do with that (it is hard to use anything more
> complicated than xterm without a window manager). All I can see is
> that once the situation arises, it tends to persist.
>
> I have just restarted the system, and it's again running with a single
> undecorated xterm, with X11 being essentially idle,  wether or not I
> do anything in that xterm or in other apps.
>
> Now, please pardon my ignorance -- I am years of reading away from
> understanding any of the X11, wm or osx GUI stuff, but is there such a
> thing as event queue? If there is such a thing, or perhaps several,
> given what a nice hack XQuartz is, can it (they) be clogged with
> something unexpected? I am imagining something that gets inserted into
> the queue, then gets "read", whatever that means, but not cleaned up?
> Or even not read? Or, can an empty queue look non-empty? Just a WAG
> trying to explain why the effect is intermittent, why it is so
> drastic, as well as why it tends to persist even after whatever
> "thing" responsible for it is gone, and even after X11 is restarted.

Every event caused by a key press/release, mouse motion, mouse button,  
window resize, window movement, etc. gets enqueued, and then written  
to a client when possible, so that the client may process it.

quartz-wm is an X client for instance, so it reads events from the X  
server, and also sends requests.  The special bit with quartz-wm is  
that it also has a SubstructureRedirectMask selected.  This allows  
quartz-wm to get the events from the queue for XConfigureWindow  
requests, and other requests, that normally the X server handles, that  
are then redirected to the quartz-wm client, where quartz-wm may  
respond to the requests as it sees fit.

I wonder if the queue could be full, and then some events get thrown  
away and cause havoc in applications or the X server.  Your gimp  
example makes me wonder about that.  I'm not as familiar with the  
input and event system as Jeremy, but if it's a bounded queue then you  
may be right.


George
-- 
http://people.freedesktop.org/~gstaplin/


More information about the Xquartz-dev mailing list