Hi, * On Sat, Sep 22, 2012 at 08:49:20PM +0800, Fengguang Wu wrote: >On Sat, Sep 22, 2012 at 04:03:11PM +0530, raghu.prabhu13@gmail.com wrote: >> From: Raghavendra D Prabhu >> >> If page lookup from radix_tree_lookup is successful and its index page_idx == >> nr_to_read - lookahead_size, then SetPageReadahead never gets called, so this >> fixes that. > >NAK. Sorry. It's actually an intentional behavior, so that for the >common cases of many cached files that are accessed frequently, no >PG_readahead will be set at all to pointlessly trap into the readahead >routines once and again. ACK, thanks for explaining that. However, regarding this, I would like to know if the implications of the patch 51daa88ebd8e0d437289f589af29d4b39379ea76 will still apply if PG_readahead is not set. > >Perhaps we need a patch for commenting that case. :) > >Thanks, >Fengguang > >> Signed-off-by: Raghavendra D Prabhu >> --- >> mm/readahead.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/mm/readahead.c b/mm/readahead.c >> index 461fcc0..fec726c 100644 >> --- a/mm/readahead.c >> +++ b/mm/readahead.c >> @@ -189,8 +189,10 @@ __do_page_cache_readahead(struct address_space *mapping, struct file *filp, >> break; >> page->index = page_offset; >> list_add(&page->lru, &page_pool); >> - if (page_idx == nr_to_read - lookahead_size) >> + if (page_idx >= nr_to_read - lookahead_size) { >> SetPageReadahead(page); >> + lookahead_size = 0; >> + } >> ret++; >> } >> >> -- >> 1.7.12.1 > Regards, -- Raghavendra Prabhu GPG Id : 0xD72BE977 Fingerprint: B93F EBCB 8E05 7039 CD3C A4B8 A616 DCA1 D72B E977 www: wnohang.net