512K readahead size with thrashing safe readahead v2
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest15 patches 20 repliesIn review
Changes since v1 from the cover letter
- update mmap read-around heuristics (Thanks to Nick Piggin)
- radix_tree_lookup_leaf_node() for the pagecache based mmap read-around
- use __print_symbolic() to show readahead pattern names (Thanks to Steven Rostedt)
- scale down readahead size proportional to system memory (Thanks to Matt Mackall)
- add readahead size kernel parameter (by Nikanth Karthikesan)
- add comments from Christian Ehrhardt
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/15 | readahead: limit readahead size for small devicesblock/ | +24 | 1 reply | |
| 2/15 | readahead: retain inactive lru pages to be accessed soonmm/ | +44 | 2 replies | |
| 3/15 | readahead: bump up the default readahead sizeinclude/ | +2 | 1 reply | |
| 4/15 | readahead: make default readahead size a kernel parameterDocumentation/ block/ fs/ +1 more | +28 | 1 reply | |
| 5/15 | readahead: limit readahead size for small memory systemsmm/ | +26 | 7 replies | |
| 6/15 | readahead: replace ra->mmap_miss with ra->ra_flagsinclude/ mm/ | +31 | 1 reply | |
| 7/15 | readahead: thrashing safe context readaheadinclude/ mm/ | +88 | 1 reply | |
| 8/15 | readahead: record readahead patternsinclude/ include/ mm/ +1 more | +55 | 1 reply | |
| 9/15 | readahead: add tracing eventinclude/ mm/ | +89 | 1 reply | |
| 10/15 | readahead: add /debug/readahead/statsmm/ mm/ | +198 | 1 reply | |
| 11/15 | readahead: dont do start-of-file readahead after lseek()fs/ include/ mm/ | +9 | 1 reply | |
| 12/15 | radixtree: introduce radix_tree_lookup_leaf_node()include/ lib/ | +24 | 1 reply | |
| 13/15 | radixtree: speed up the search for holelib/ | +56 | 1 reply | |
| 14/15 | readahead: reduce MMAP_LOTSAMISS for mmap read-aroundmm/ | +1 | 1 reply | |
| 15/15 | readahead: pagecache context based mmap read-aroundmm/ | +10 | 1 reply |
Reviews trailers per patch
All 15 patches have a Reviewed-by or Acked-by.
| Patch | Jens Axboe | Vivek Goyal | Linus Torvalds | Christian Ehrhardt | Rik van Riel |
|---|---|---|---|---|---|
| 1/15 | A-b | T-b | T-b | A-b | |
| 2/15 | A-b | ||||
| 3/15 | T-b | T-b A-b | A-b | ||
| 4/15 | A-b | ||||
| 5/15 | A-b A-b | A-b | |||
| 6/15 | A-b | ||||
| 7/15 | A-b | ||||
| 8/15 | A-b | ||||
| 9/15 | A-b | ||||
| 10/15 | A-b | ||||
| 11/15 | A-b | A-b | |||
| 12/15 | A-b | ||||
| 13/15 | A-b | ||||
| 14/15 | A-b | ||||
| 15/15 | A-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.
Cover letter [PATCH 00/15] 512K readahead size with thrashing safe readahead v2
Andrew,
This enlarges the default readahead size from 128K to 512K. To avoid possible regressions, also do
- scale down readahead size on small device and small memory
- thrashing safe context readahead
- add readahead tracing/stats support to help expose possible problems
Besides, the patchset also includes several algorithm updates:
- no start-of-file readahead after lseek
- faster radix_tree_next_hole()/radix_tree_prev_hole()
- pagecache context based mmap read-around
Changes since v1:
- update mmap read-around heuristics (Thanks to Nick Piggin)
- radix_tree_lookup_leaf_node() for the pagecache based mmap read-around
- use __print_symbolic() to show readahead pattern names (Thanks to Steven Rostedt)
- scale down readahead size proportional to system memory (Thanks to Matt Mackall)
- add readahead size kernel parameter (by Nikanth Karthikesan)
- add comments from Christian Ehrhardt
Changes since RFC:
- move the lenthy intro text to individual patch changelogs
- treat get_capacity()==0 as uninitilized value (Thanks to Vivek Goyal)
- increase readahead size limit for small devices (Thanks to Jens Axboe)
- add fio test results by Vivek Goyal
[PATCH 01/15] readahead: limit readahead size for small devices [PATCH 02/15] readahead: retain inactive lru pages to be accessed soon [PATCH 03/15] readahead: bump up the default readahead size [PATCH 04/15] readahead: make default readahead size a kernel parameter [PATCH 05/15] readahead: limit readahead size for small memory systems [PATCH 06/15] readahead: replace ra->mmap_miss with ra->ra_flags [PATCH 07/15] readahead: thrashing safe context readahead [PATCH 08/15] readahead: record readahead patterns
[PATCH 09/15] readahead: add tracing event
[PATCH 10/15] readahead: add /debug/readahead/stats
[PATCH 11/15] readahead: dont do start-of-file readahead after lseek() [PATCH 12/15] radixtree: introduce radix_tree_lookup_leaf_node() [PATCH 13/15] radixtree: speed up the search for hole
[PATCH 14/15] readahead: reduce MMAP_LOTSAMISS for mmap read-around [PATCH 15/15] readahead: pagecache context based mmap read-around
Documentation/kernel-parameters.txt | 4 block/blk-core.c | 3 block/genhd.c | 24 + fs/fuse/inode.c | 2 fs/read_write.c | 3 include/linux/fs.h | 64 +++ include/linux/mm.h | 8 include/linux/radix-tree.h | 2 include/trace/events/readahead.h | 78 ++++ lib/radix-tree.c | 94 ++++- mm/Kconfig | 13 mm/filemap.c | 30 + mm/readahead.c | 459 ++++++++++++++++++++++---- 13 files changed, 680 insertions(+), 104 deletions(-)
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>