Skip to content

512K readahead size with thrashing safe readahead v3

Wu Fengguang linux-fsdevel linux-mm lkml 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest0 of 15 patches 0 repliesNew

Changes since v2 from the cover letter

- add notes on readahead size
- limit read-around size for small memory system, but don't limit readahead size
- bug fix: allow context readahead async size grow to its full size
- bug fix: let radix_tree_lookup_leaf_node() handle the height=1 case

Patches in v1 No applies recorded yet

None of the 15 patches the cover letter announces are in this archive.

Reviews trailers per patch

PatchJens AxboeRik van RielVivek GoyalLinus TorvaldsChristian Ehrhardt
SeriesA-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b A-b T-b T-b T-b A-b T-b A-b 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.

Read the v1 thread

Cover letter [PATCH 00/16] [PATCH 00/15] 512K readahead size with thrashing safe readahead v3

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 v2:
- add notes on readahead size
- limit read-around size for small memory system, but don't limit readahead size
- bug fix: allow context readahead async size grow to its full size
- bug fix: let radix_tree_lookup_leaf_node() handle the height=1 case

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/16] readahead: limit readahead size for small devices [PATCH 02/16] readahead: retain inactive lru pages to be accessed soon [PATCH 03/16] readahead: bump up the default readahead size [PATCH 04/16] readahead: make default readahead size a kernel parameter [PATCH 05/16] readahead: limit read-ahead size for small memory systems [PATCH 06/16] readahead: add notes on readahead size
[PATCH 07/16] readahead: replace ra->mmap_miss with ra->ra_flags [PATCH 08/16] readahead: thrashing safe context readahead [PATCH 09/16] readahead: record readahead patterns
[PATCH 10/16] readahead: add tracing event
[PATCH 11/16] readahead: add /debug/readahead/stats
[PATCH 12/16] readahead: dont do start-of-file readahead after lseek() [PATCH 13/16] radixtree: introduce radix_tree_lookup_leaf_node() [PATCH 14/16] radixtree: speed up the search for hole
[PATCH 15/16] readahead: reduce MMAP_LOTSAMISS for mmap read-around [PATCH 16/16] 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                    |  104 ++++-
 mm/Kconfig                          |   13 
 mm/filemap.c                        |   34 +
 mm/readahead.c                      |  458 ++++++++++++++++++++++----
 13 files changed, 688 insertions(+), 109 deletions(-)

Thanks,
Fengguang

--
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>