On Tue, 2004-11-30 at 15:20 -0500, David Malcolm wrote:
On Sun, 2004-11-28 at 20:49 -0500, David Zeuthen wrote:
Awesome! So... is no-one else going to reply to this email?
Various comments inline below...
Thanks!
> Hey,
>
> So, I've looked a bit more into the booting process and how to optimize
> it. Mostly based on the discussion triggered by Owen's boot poster
> challenge, here
>
>
http://www.redhat.com/archives/fedora-devel-list/2004-November/msg00447.html
>
> and also some experiments that I did - basically replacing rhgb with gdm
> as described here
>
>
http://www.redhat.com/archives/fedora-desktop-list/2004-November/msg00066...
>
> What I've done is a bit crude - I've replaced init(1) with a shell
> script based on /etc/rc.d/rc.sysinit and tried to optimize specifically
> for my system: IBM Thinkpad T41 laptop with a Pentium M processor at
> 1600MHz along with 512MB of RAM.
If I understand, you're also optimising for a specific user of that
system.
Yeah, out of 5189 files (193MB), 231 of them (31MB) are from my home
directory. Due to the way I've instrumented the kernel (printk() in
fs/namei.c function link_path_walk()) this also includes files that are
only stat(2)'ed. Which means that e.g.
/home/davidz/Desktop/Stuff/kernel-2.6.9-1.751_EL.i686.rpm
of size approx 10MB are loaded. So 193MB is a bit high, however, since
files are being stat(2)'ed anyway there will be a disk seek to the inode
so to play it safe we need that block as well. Thus, readahead would be
better to do on the block layer level; also because shared objects like
e.g. libgtk-x11-2.0.so contains a lot of deprecated API's nobody uses
anyway (e.g. don't load those pages).
Is it worth splitting the readahead into a system-wide list of
files (enough to get to the login screen), followed by a per-user list
for logging in as a user?
Could be done, yeah.
To what extent will the files needed to get
to a usable desktop vary between Alice and Bob?
I dunno; if Bob uses, say, 50MB worth of .pdf documents every time he
logs in we should preload those (that isn't at all out of the ordinary
if Bob uses a lot of reference manuals).
The list of files (blocks) should be generated from several criteria
including how often they are read. Ideally we always start a daemon in
early boot to monitor this and rearrange blocks on the disk when idle or
perhaps every week.
> d. The whole init(1) procedure seems dated; perhaps something
more
> modern built on top of D-BUS is the right choice - SystemServices
> by Seth Nickell comes to mind [1]. Ideally services to be started
> would have dependencies such as 1) don't start the gdm service
> before /usr/bin/gdm is available; 2) the SSH service would only
> be active when NetworkManager says there is a network connection;
> /usr from LABEL=/usr would only be mounted when there is a volume
> with that label and so forth. Also, such a system would of course
> have support for LSB init scripts.
> (This is probably a whole project on it's own so I'm omitting
> detailed thinking on it for now)
Hopefully this could also allow us to make system-config-services look a
lot slicker. I've never liked the way it has random text spewage for
each service's status - some kind of widgetry would satisfy my eye-candy
cravings.
Heh, and sweet icons too :-)
Cheers,
David