From: Fengguang Wu <fengguang.wu@intel.com>
To: Raghavendra D Prabhu <raghu.prabhu13@gmail.com>
Cc: linux-mm@kvack.org, viro@zeniv.linux.org.uk, akpm@linux-foundation.org
Subject: Re: Re: Re: [PATCH 2/5] mm/readahead: Change the condition for SetPageReadahead
Date: Wed, 17 Oct 2012 10:34:19 +0800 [thread overview]
Message-ID: <20121017023419.GC13769@localhost> (raw)
In-Reply-To: <20121016174252.GB2826@Archie>
Hi Raghavendra,
> An implication of 51daa88ebd8e0d437289f589af29d4b39379ea76 is that,
> a redundant check for PageReadahead(page) is avoided since async is
> piggy-backed into the synchronous readahead itself.
That's right.
> So, in case of
>
> page = find_get_page()
> if(!page)
> page_cache_sync_readahead()
> else if (PageReadahead(page))
> page_cache_async_readahead();
>
> isnt' there a possibility that PG_readahead won't be set at all if
> page is not in cache (causing page_cache_sync_readahead) but page at
> index (nr_to_read - lookahead_size) is already in the cache? (due
> to if (page) continue; in the code)?
Yes, and I'm fully aware of that. It's left alone because it's assumed
to be a rare case. The nature of readahead is, there are all kinds of
less common cases that we deliberately ignore in order to keep the
code simple and maintainable.
> Hence, I changed the condition from equality to >= for setting
> SetPageReadahead(page) (and added a variable so that it is done only
> once).
It's excellent that you noticed that case. And sorry that I come to
realize that your change
- if (page_idx == nr_to_read - lookahead_size)
+ if (page_idx >= nr_to_read - lookahead_size) {
SetPageReadahead(page);
+ lookahead_size = 0;
+ }
won't negatively impact cache hot reads. So I have no strong feelings
about the patch now.
Thanks,
Fengguang
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2012-10-17 2:34 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-22 10:33 [PATCH 0/5] Readahead fixes / improvements raghu.prabhu13
[not found] ` <cover.1348309711.git.rprabhu@wnohang.net>
2012-09-22 10:33 ` [PATCH 1/5] mm/readahead: Check return value of read_pages raghu.prabhu13
2012-09-22 12:43 ` Fengguang Wu
2012-09-26 1:25 ` Raghavendra D Prabhu
2012-09-28 11:54 ` Fengguang Wu
2012-10-16 17:47 ` Raghavendra D Prabhu
2012-10-17 2:53 ` Fengguang Wu
2012-09-22 10:33 ` [PATCH 2/5] mm/readahead: Change the condition for SetPageReadahead raghu.prabhu13
2012-09-22 12:49 ` Fengguang Wu
2012-09-26 1:29 ` Raghavendra D Prabhu
2012-09-28 11:56 ` Fengguang Wu
2012-10-16 17:42 ` Raghavendra D Prabhu
2012-10-17 2:34 ` Fengguang Wu [this message]
2012-09-22 10:33 ` [PATCH 3/5] Remove file_ra_state from arguments of count_history_pages raghu.prabhu13
2012-09-22 12:40 ` Fengguang Wu
2012-10-16 18:21 ` Raghavendra D Prabhu
2012-10-17 3:15 ` Fengguang Wu
2012-09-22 10:33 ` [PATCH 4/5] Move the check for ra_pages after VM_SequentialReadHint() raghu.prabhu13
2012-09-22 12:42 ` Fengguang Wu
2012-09-26 1:39 ` Raghavendra D Prabhu
2012-10-16 18:15 ` Raghavendra D Prabhu
2012-10-17 3:13 ` Fengguang Wu
2012-09-22 10:33 ` [PATCH 5/5] mm/readahead: Use find_get_pages instead of radix_tree_lookup raghu.prabhu13
2012-09-22 13:15 ` Fengguang Wu
2012-09-26 2:58 ` Raghavendra D Prabhu
2012-09-28 12:18 ` Fengguang Wu
2012-10-16 16:59 ` Raghavendra D Prabhu
2012-10-17 2:12 ` Fengguang Wu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121017023419.GC13769@localhost \
--to=fengguang.wu@intel.com \
--cc=akpm@linux-foundation.org \
--cc=linux-mm@kvack.org \
--cc=raghu.prabhu13@gmail.com \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.