Merge lp://staging/~psusi/ubuntu/precise/ureadahead/faster into lp://staging/ubuntu/precise/ureadahead

Proposed by Phillip Susi
Status: Work in progress
Proposed branch: lp://staging/~psusi/ubuntu/precise/ureadahead/faster
Merge into: lp://staging/ubuntu/precise/ureadahead
Diff against target: 222 lines (+61/-31)
5 files modified
debian/changelog (+10/-0)
debian/ureadahead.postinst (+1/-4)
src/pack.c (+31/-22)
src/pack.h (+1/-0)
src/trace.c (+18/-5)
To merge this branch: bzr merge lp://staging/~psusi/ubuntu/precise/ureadahead/faster
Reviewer Review Type Date Requested Status
Luke Yelavich (community) Needs Fixing
James Hunt Pending
Ubuntu branches Pending
Review via email: mp+84556@code.staging.launchpad.net

Description of the change

These are some changes I developed a year ago to make ureadahead even faster. I forgot to propose merging them in oneiric, so I've rebased them for precise.

To post a comment you must log in.
Revision history for this message
Luke Yelavich (themuso) wrote :

This FTBF in precise. As per IRC, this will be looked into.

review: Needs Fixing
Revision history for this message
Evan Broder (broder) wrote :

Changing the status of this to "Work in progress" to remove it from the sponsor queue, as it still FTBFS. Please feel free to change the status back to "Needs review" when it's ready to be reviewed.

Unmerged revisions

29. By Phillip Susi

Force reprofile on upgrade

28. By Phillip Susi

* Read all directories optimally
* trace_add_path(): accept directories
* Readahead on the raw block device
* Made preload_inode_group() smarter

27. By Phillip Susi

Read all directories optimally

When tracing, add each directory in the path to a file when
adding it to the pack. When booting, read the directories
via the block device, and normal files the old way, in two
phases. This is required because ext3/4 cache directories
via the block device mapping and normal files via file
mappings. Reading the directories into the cache speeds up
the open() calls to the normal files. To facillitate this,
the st_mode has been added to the file entry in the pack
file so ureadahead can see if the file is a regular file
or a directory.

26. By Phillip Susi

trace_add_path(): accept directories

Rather than bail out and ignore a directory, it now
directly adds the extents for the entire directory
to the pack file.

25. By Phillip Susi

Readahead on the raw block device

As long as we managed to open the raw block device and preload
the inode tables, don't bother open()ing the files and instead
call readahead() on the raw block device with the physical
offsets instead. This makes sure we don't block in the open()
calls.

24. By Phillip Susi

Made preload_inode_group() smarter

Before it called on e2fslibs to get the next inode until it returned
one not in the specified group. This caused sync reads of the inodes
and could read inode tables that we don't need. Now it looks up the
locations of the inode table, inode bitmap, and block bitmap and calls
readahead() on the block device for those locations to queue their
reads in the background.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches

to all changes: