GNOME 2.22 has been released!
Vladimir Grebenschikov
vova at parallels.com
Thu Mar 27 01:11:19 PDT 2008
On Thu, 2008-03-27 at 10:27 +0300, Vladimir Grebenschikov wrote:
Just get that problem:
Xorg shows 30+% in top :(
evolution redraws current line in list of messages in visible two stages
- left part, then right part.
Running applications:
gnome-panel,
evolution, firefox (minimized, static local homepage with only links
opened)
xterm (one, on non-active desktop, no changes)
sim-im
gkrellm
exiting xterm, sim-im, gkrellm does not change anything,
exiting evolution lowers CPU usage of Xorg till 15-17% but it is still
TOO high for completely idle system.
It shows about 10% even when I've go to console.
strace shows strange infinite loop,
looks like FD 18 false notify Xorg about something, of course it
is /tmp/.X11-unix/X0
# fstat | fgrep c52bb5e8\|c6aff000
vova evolution 20927 3* local stream c6aff5e8 <-> c6aff000
vova at-spi-registryd 1264 9* local stream c52c3d20 <-> c52bb5e8
root Xorg 1008 18* local stream c52bb5e8 <-> c52c3d20
root Xorg 1008 32* local stream c6aff000 <-> c6aff5e8
No idea what as-spi-r. wants so often from X.
After kill -STOP at-spi-r. Xorg stops eating resources, but
window-manager refused to do its work.
$ fgrep read Xorg.trace
read(32, "B\0\5\0\261\17 \2\263\17 \2\n\0r\1\n\0\203\1", 7504) = 20
read(32, 0x87da000, 7504) = -1 EAGAIN (Resource temporarily unavailable)
read(18, "&\21\2\0_\0\0\0", 4096) = 8
read(18, 0x86ad000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(18, "&\21\2\0_\0\0\0", 4096) = 8
read(18, 0x86ad000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(18, "&\21\2\0_\0\0\0", 4096) = 8
read(18, 0x86ad000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(18, "&\21\2\0_\0\0\0", 4096) = 8
read(18, 0x86ad000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(18, "&\21\2\0_\0\0\0", 4096) = 8
read(18, 0x86ad000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(32, "B\0\5\0\261\17 \2\263\17 \2\n\0r\1\n\0\203\1", 7504) = 20
read(32, 0x87da000, 7504) = -1 EAGAIN (Resource temporarily unavailable)
read(18, "&\21\2\0_\0\0\0", 4096) = 8
read(18, 0x86ad000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(18, "&\21\2\0_\0\0\0", 4096) = 8
read(18, 0x86ad000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(18, "&\21\2\0_\0\0\0", 4096) = 8
read(18, 0x86ad000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(18, "&\21\2\0_\0\0\0", 4096) = 8
read(18, 0x86ad000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(18, "&\21\2\0_\0\0\0", 4096) = 8
read(18, 0x86ad000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
...
part of trace log:
select(256, [1 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 56 57 58 59 60 61], NULL, NULL, {2, 0}) = -1 EINTR (Interrupted system call)
--- SIGALRM (Alarm clock: 14) ---
--- SIGALRM (Alarm clock: 14) ---
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
syscall_417(0xbfbfe3b0) = -1 (errno 4)
poll([{fd=0, events=0}], 1, 0) = 0
clock_gettime(0xc, 0xbfbfe6a4) = 0
clock_gettime(0xc, 0xbfbfe6a4) = 0
select(256, [1 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 56 57 58 59 60 61], NULL, NULL, {2, 0}) = 1 (in [18])
setitimer(ITIMER_REAL, {it_interval={2, 0}, it_value={0, 0}}, NULL) = 0
clock_gettime(0xc, 0xbfbfe6a4) = 0
read(18, "&\21\2\0_\0\0\0", 4096) = 8
read(18, 0x86ad000, 4096) = -1 EAGAIN (Resource temporarily unavailable)
writev(18, [{"", 0}], 1) = 32
clock_gettime(0xc, 0xbfbfe6a4) = 0
select(256, [1 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 56 57 58 59 60 61], NULL, NULL, {2, 0}) = -1 EINTR (Interrupted system call)
--- SIGALRM (Alarm clock: 14) ---
--- SIGALRM (Alarm clock: 14) ---
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
syscall_417(0xbfbfe3b0) = -1 (errno 4)
poll([{fd=0, events=0}], 1, 0) = 0
clock_gettime(0xc, 0xbfbfe6a4) = 0
clock_gettime(0xc, 0xbfbfe6a4) = 0
select(256, [1 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 56 57 58 59 60 61], NULL, NULL, {2, 0}) = 1 (in [18])
> On Wed, 2008-03-26 at 13:23 -0700, Kevin Oberman wrote:
>
> > > > One more problem with recent Gnome - Xorg now all time eats CPU
> > > > 10-30% constantly.
> > > >
> > > > Exiting from all applications lowers that numbers, but even
> > several
> > > > percents of CPU for idle system is too much.
> > > >
> > > > Any ideas why it may happens and how to cure ?
> > >
> > > No idea. This I have not noticed. There was some recent work that
> > went
> > > into xorg-server to handle a jerky mouse problem. Perhaps that is
> > > contributing to your CPU problem.
> >
> > The "jerky mouse" fix should reduce CPU time, not increase it, as I
> > think it eliminates the huge number of gettimeofday calls (expensive
> > in
> > FreeBSD) and replaces them with cheap call (which I forget) as the
> > mouse
> > was only using it to tell that time was passing and does not care what
> > time it is.
> >
> > On my system (with hald not running), I see well under 1% cpu use by
> > xorg.
> >
> > Note that some apps can really make xorg busy. Any flash running?
> > Firefox (even ignoring flash) seems to do things that cause xorg
> > utilization to go way up for certain operations.
>
> No flash, evolution, eclipse, firefox (exiting from here does not change
> situation greatly).
>
> But problem happens time to time. I'll try to find what software causing
> Xorg to eat CPU when it happens next time.
>
--
Vladimir B. Grebenschikov
Parallels Inc. vova at parallels.com
More information about the freebsd-gnome
mailing list