Merge lp:~psusi/ubuntu/precise/ureadahead/faster into lp:ubuntu/precise/ureadahead
Status: | Work in progress |
---|---|
Proposed branch: | lp:~psusi/ubuntu/precise/ureadahead/faster |
Merge into: | lp: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:~psusi/ubuntu/precise/ureadahead/faster |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Luke Yelavich (community) | Needs Fixing | ||
James Hunt | Pending | ||
Ubuntu branches | Pending | ||
Review via email: mp+84556@code.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.
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.
This FTBF in precise. As per IRC, this will be looked into.