[Bug 333491] Review Request: preload-0.4 - Preload is an adaptive readahead daemon

bugzilla at redhat.com bugzilla at redhat.com
Sat Nov 10 08:32:26 UTC 2007


Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug report.

Summary: Review Request: preload-0.4 - Preload is an adaptive readahead daemon


https://bugzilla.redhat.com/show_bug.cgi?id=333491





------- Additional Comments From besfahbo at redhat.com  2007-11-10 03:32 EST -------
Hi,

So, here's preload's story:

  - I did it as a Google Summer of Code for Fedora in Summer 2005

  - Spent the year after writing a Masters thesis about it.  Available here:

    http://www.cs.toronto.edu/~behdad/preload.pdf

  - Got a job with Red Hat's Desktop team after that

So I've been just around the corner :-).


Lemme first mention that preload is no magic bullet.  In my measurements, any
kind of readahead may slow down the boot process on some configurations. 
Nevertheless it's good to have it packaged and able to experiment with.  I'm
particularly curious to see if we can hook it to gdm to prefetch while waiting
for login information.

Over the past two years I've got a few preload patches, and found some more over
the net.  I'm not finished committing most of those.  If you follow the mailing
list you'll see:

  http://sourceforge.net/mailarchive/forum.php?forum_name=preload-devel


The remaining issue is how to improve readahead.c.  Some points:

  - I fixed a bug that was causing no sort being done at all, not even on file
names.  That should fix the main problem.

  - I've received a patch for request merging and parallel readahead using
fork().  I'm not happy preload spawning hundreds of processes, so I need to
adjust it a bit.

  - The Debian patch, that is in Marc's proposed package too, uses block address
to sort, but it's incorrect as it always gets the block number of the first
block.  That's just plain wrong.  Fortunately the fix is easy.

So, what I'm doing on Sunday (busy tomorrow) is to implement:

  - Sort on block (requires CAP_SYS_RAWIO, aka root), fallback on inode,
fallback on filename.

  - Request merging

  - Optionally parallel them.  Probably turn it on by default, with a max fork
limit set.


What I've done so far that may be of interest to you:

  - Upstreamed most of the easy fixes.

  - Added /lib64 and /var/cache (to cover fontconfig caches) to mapprefix.

  - Added ionice to init script.

  - Dropped the upstream spec file.

So, I'll be making a release, hopefully on Monday, with all the goodness.  And
yes, I'll be maintaining it.

-- 
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




More information about the Fedora-package-review mailing list