Comment 7 for bug 21790

Revision history for this message
Lee Willis (lwillis) wrote :

(In reply to comment #6)
> (In reply to comment #5)
> > I'll also be trying to incrementally start services to identify where the
> > problem starts as soon as I'm back at a machine that exhibits this problem (My
> > laptop doesn't show this problem :( )
>
> Please do; that would help.
>
> > Have you any other ideas of how I can identify the problem?
>
> If it works well in single-user, then it should be straightforward to narrow
> down the cause using the above procedure.

Right. After having looked into this some more it seems that the differentiation
isn't whether I'm in single user or multi-user mode, but whether or not I'm
logged into GNOME.

If I boot normally, log into GNOME & run hdparm I get poor results (around
17MB/s for disk reads). If I log out out from GNOME and back to the GDM login
page, and run hdparm then I get around 45 MB/s.

It appears that it is something in the GNOME session that is causing the slowdown.

The difference in process lists between no GNOME session, and a GNOME session is
roughly:

bonobo-activation-server
dbus-daemon
dbus-launch
esd
gam_server
gconfd-2
gnome-cups-icon
gnome-keyring-daemon
gnome-panel
gnome-pty-helper
gnome-settings-daemon
gnome-terminal
gnome-vfs-daemon
metacity
notification-area-applet
notification-daemon
ssh-agent
wnck-applet
x-session-manager

I've shut off everything non-essential and still see "poor" speeds. I do see
some improvements by getting rid of nautilus, clock-applet, update-notifier,
xscreensaver, gweather_applet, gnome-volumne-manager and multiload-applet I get
about 10 MB/s back, but am still 10MB/s short. The obvious candidate would be
gam_server but I can't work out how to get it to not re-spawn ...

A strace of gam_server shows:
poll([{fd=1, events=0}, {fd=2, events=POLLIN}, {fd=4, events=POLLIN}, {fd=1,
events=POLLIN}, {fd=5, events=POLLIN}, {fd=0, events=POLLIN}, {fd=3,
events=POLLIN}], 7, 0) = 0
gettimeofday({1127377987, 340687}, NULL) = 0
poll([{fd=1, events=0}, {fd=2, events=POLLIN}, {fd=4, events=POLLIN}, {fd=1,
events=POLLIN}, {fd=5, events=POLLIN}, {fd=0, events=POLLIN}, {fd=3,
events=POLLIN}], 7, 11) = 0
gettimeofday({1127377987, 352450}, NULL) = 0
gettimeofday({1127377987, 352512}, NULL) = 0
poll([{fd=1, events=0}, {fd=2, events=POLLIN}, {fd=4, events=POLLIN}, {fd=1,
events=POLLIN}, {fd=5, events=POLLIN}, {fd=0, events=POLLIN}, {fd=3,
events=POLLIN}], 7, 0) = 0
gettimeofday({1127377987, 352654}, NULL) = 0
poll([{fd=1, events=0}, {fd=2, events=POLLIN}, {fd=4, events=POLLIN}, {fd=1,
events=POLLIN}, {fd=5, events=POLLIN}, {fd=0, events=POLLIN}, {fd=3,
events=POLLIN}], 7, 0) = 0
gettimeofday({1127377987, 352796}, NULL) = 0

over and over again - but I'm not sure if this is actually a problem or not ...