Faster login
Alex Thomsen Leth
alexl at stofanet.dk
Sun Nov 14 13:01:19 UTC 2004
great job. gdm shows really fast. but of course it takes a while for
login.
lør, 13 11 2004 kl. 21:24 -0500, skrev David Zeuthen:
> Hi,
>
> So I had a brief look at shortening startup/login time and tried
> disabling rhgb in favor of starting gdm early. It looks pretty
> promising; here are some wall-clock numbers from two runs of each
> configuration:
>
> | gdm_early | rhgb+gdm |
> ----------------------+------+-------+-------+------+
> GRUB timeout | 0:00 | 0:00 | 0:00 | 0:00 |
> Starting udev | 0:13 | 0:13 | 0:13 | 0:14 |
> HW init done | 0:25 | 0:25 | 0:26 | 0:26 |
> rhgb visible | N/A | N/A | 0:36 | 0:35 |
> gdm login visible | 0:43 | 0:44 | 1:25 | 1:26 |
> gdm login entered | 0:52 | 0:52 | 1:31 | 1:32 |
> GNOME banner visible | 1:13 | 1:14 | 1:40 | 1:41 |
> Nautilus Background | 1:33 | 1:32 | 1:51 | 1:52 |
> Panel visible | 1:43 | 1:43 | 2:02 | 2:02 |
> HD activity off | 1:59 | 1:56 | 2:13 | 2:14 |
>
> The milestones should be pretty self evident. This is on a stock FC3
> system running on a IBM T41 1.6GHz (running on AC power), 512MB RAM
> without any services manually disabled.
>
> In addition to starting gdm early, the modifications also start up a few
> services, D-BUS, HAL and NetworkManager, that is critical to the GNOME
> desktop.
>
> Some random thoughts/observations:
>
> - We get the gdm window 40 secs faster
>
> - The 12 secs from "Starting udev" to "HW init done" can be mostly
> shaved away/run in parallel
>
> - Kernel bootstrap time (13 secs) can probably be much shorter
> (that's what some kernel guys say anyway)
>
> - With this hack we shave twenty secs of the booting time (e.g. from
> GRUB until you can use your PC) but booting still feels much quicker
> because of the interaction with gdm in the middle (YMMV; e.g. placebo
> effect etc.)
>
> - rhgb+gdm spawns an X server each which is sort of stupid and unsafe
> (or so some Xorg guys tell me). This solution, per design, avoids
> doing that
>
> - we don't get the kudzu screen nor the fsck screens or any other
> console interactions. However, IMHO, such screens are not good UI
> in the first place - we should instead have GUI replacemnts that
> possibly notifies you when you log into the desktop session (stuff
> like NetworkManager and HAL alleviates such problems for networking
> and storage devices)
>
> - we don't get service startup notification, but, uhmm, is it really
> useful learning that the "Console Mouse Service" or "Printing Sub-
> system" have started? Instead, this stuff could just be put in gdm
>
> - it could be interesting to make /sbin/init own a D-BUS service that
> gdm and other stuff can query and interact with. Could also be fun
> to completely replace it with something a'la the SystemServices
> prototype that Seth did last year; links
>
> http://www.osnews.com/story.php?news_id=4711
> http://www.gnome.org/~seth/blog/2003/Sep/27
>
> - Could be interesting to instrument the kernel with some pagefault
> counters etc. and attempt do more readahead on e.g. the GNOME libs
> (both Windows XP and Mac OS X does all that; I think we do too but
> I've been told it can be improved)
>
> So, anyway, I think it could be interesting to discuss starting gdm
> instead of rhgb. If you want to try out my crude hack, grab the file
> here
>
> http://people.redhat.com/davidz/newinit.sh
>
> put it in on your system as /newinit.sh, chmod a+x it and change this
> line /etc/inittab
>
> si::sysinit:/etc/rc.d/rc.sysinit
>
> to these two lines
>
> #si::sysinit:/etc/rc.d/rc.sysinit
> si::sysinit:/newinit.sh
>
> and you should be set to go! If it breaks you get to keep both pieces;
> e.g. try this at your own risk [1].
>
> Cheers,
> David
>
> [1] :if it doesn't work you can boot your kernel with init=/bin/sh, do a
> 'mount -n -o remount,rw /' and edit your /etc/inittab file to point to
> the original sysinit.
>
>
More information about the desktop
mailing list