Hi, * On Sat, Sep 22, 2012 at 08:49:20PM +0800, Fengguang Wu <fengguang.wu@xxxxxxxxx> wrote:
On Sat, Sep 22, 2012 at 04:03:11PM +0530, raghu.prabhu13@xxxxxxxxx wrote:From: Raghavendra D Prabhu <rprabhu@xxxxxxxxxxx> 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, FengguangSigned-off-by: Raghavendra D Prabhu <rprabhu@xxxxxxxxxxx> --- 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
Attachment:
pgpThFXK9PhVz.pgp
Description: PGP signature