All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wu Fengguang <fengguang.wu@intel.com>
To: Raghavendra D Prabhu <rprabhu@wnohang.net>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>
Subject: Re: [TOME] Re: [PATCH 3/3] mm/readahead: Move the check for ra_pages after VM_SequentialReadHint()
Date: Sun, 10 Jul 2011 08:59:06 -0700	[thread overview]
Message-ID: <20110710155906.GB7432@localhost> (raw)
In-Reply-To: <20110710125909.GA4460@Xye>

On Sun, Jul 10, 2011 at 08:59:09PM +0800, Raghavendra D Prabhu wrote:
> * On Sat, Jul 09, 2011 at 01:53:08PM -0700, Wu Fengguang <fengguang.wu@intel.com> wrote:
> >On Sun, Jul 10, 2011 at 03:41:20AM +0800, Raghavendra D Prabhu wrote:
> >>page_cache_sync_readahead checks for ra->ra_pages again, so moving the check after VM_SequentialReadHint.
> >
> >NAK. This patch adds nothing but overheads.
> >
> >>--- a/mm/filemap.c
> >>+++ b/mm/filemap.c
> >>@@ -1566,8 +1566,6 @@ static void do_sync_mmap_readahead(struct vm_area_struct *vma,
> >> 	/* If we don't want any read-ahead, don't bother */
> >> 	if (VM_RandomReadHint(vma))
> >> 		return;
> >>-	if (!ra->ra_pages)
> >>-		return;
> 
> >> 	if (VM_SequentialReadHint(vma)) {
> >> 		page_cache_sync_readahead(mapping, ra, file, offset,
> >>@@ -1575,6 +1573,9 @@ static void do_sync_mmap_readahead(struct vm_area_struct *vma,
> >> 		return;
> >> 	}
> 
> >>+	if (!ra->ra_pages)
> >>+		return;
> >>+
> >
> >page_cache_sync_readahead() has the same
> >
> >	if (!ra->ra_pages)
> >		return;
> 1. Yes, I saw that and that is why I moved it after the condition, so that duplicate checks are
> not needed -- ie., if VM_SequentialReadHint is true, then
> (!ra->ra_pages) is checked twice otherwise.

Ok, I see.

> 2. Also, another thought, is the check needed at its original place (if
> not it can be removed), reasons being -- filesystems like tmpfs which
> have ra_pages set to 0 don't use filemap_fault in their VMA ops and also

Good point. tmpfs is using shmem_fault().. Can you remove the test?  

> do_sync_mmap_readahead is called in a major page fault context.

Right. This is irrelevant however, because if pa_pages==0, the
page faults will normally be major ones.

Thanks,
Fengguang

> >So the patch adds the call into page_cache_sync_readahead() just to return..
> >
> >Thanks,
> >Fengguang
> >
> --------------------------
> Raghavendra Prabhu
> GPG Id : 0xD72BE977
> Fingerprint: B93F EBCB 8E05 7039 CD3C A4B8 A616 DCA1 D72B E977
> www: wnohang.net



WARNING: multiple messages have this Message-ID (diff)
From: Wu Fengguang <fengguang.wu@intel.com>
To: Raghavendra D Prabhu <rprabhu@wnohang.net>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>
Subject: Re: [TOME] Re: [PATCH 3/3] mm/readahead: Move the check for ra_pages after VM_SequentialReadHint()
Date: Sun, 10 Jul 2011 08:59:06 -0700	[thread overview]
Message-ID: <20110710155906.GB7432@localhost> (raw)
In-Reply-To: <20110710125909.GA4460@Xye>

On Sun, Jul 10, 2011 at 08:59:09PM +0800, Raghavendra D Prabhu wrote:
> * On Sat, Jul 09, 2011 at 01:53:08PM -0700, Wu Fengguang <fengguang.wu@intel.com> wrote:
> >On Sun, Jul 10, 2011 at 03:41:20AM +0800, Raghavendra D Prabhu wrote:
> >>page_cache_sync_readahead checks for ra->ra_pages again, so moving the check after VM_SequentialReadHint.
> >
> >NAK. This patch adds nothing but overheads.
> >
> >>--- a/mm/filemap.c
> >>+++ b/mm/filemap.c
> >>@@ -1566,8 +1566,6 @@ static void do_sync_mmap_readahead(struct vm_area_struct *vma,
> >> 	/* If we don't want any read-ahead, don't bother */
> >> 	if (VM_RandomReadHint(vma))
> >> 		return;
> >>-	if (!ra->ra_pages)
> >>-		return;
> 
> >> 	if (VM_SequentialReadHint(vma)) {
> >> 		page_cache_sync_readahead(mapping, ra, file, offset,
> >>@@ -1575,6 +1573,9 @@ static void do_sync_mmap_readahead(struct vm_area_struct *vma,
> >> 		return;
> >> 	}
> 
> >>+	if (!ra->ra_pages)
> >>+		return;
> >>+
> >
> >page_cache_sync_readahead() has the same
> >
> >	if (!ra->ra_pages)
> >		return;
> 1. Yes, I saw that and that is why I moved it after the condition, so that duplicate checks are
> not needed -- ie., if VM_SequentialReadHint is true, then
> (!ra->ra_pages) is checked twice otherwise.

Ok, I see.

> 2. Also, another thought, is the check needed at its original place (if
> not it can be removed), reasons being -- filesystems like tmpfs which
> have ra_pages set to 0 don't use filemap_fault in their VMA ops and also

Good point. tmpfs is using shmem_fault().. Can you remove the test?  

> do_sync_mmap_readahead is called in a major page fault context.

Right. This is irrelevant however, because if pa_pages==0, the
page faults will normally be major ones.

Thanks,
Fengguang

> >So the patch adds the call into page_cache_sync_readahead() just to return..
> >
> >Thanks,
> >Fengguang
> >
> --------------------------
> Raghavendra Prabhu
> GPG Id : 0xD72BE977
> Fingerprint: B93F EBCB 8E05 7039 CD3C A4B8 A616 DCA1 D72B E977
> www: wnohang.net


--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2011-07-10 15:59 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-09 19:41 [PATCH 0/3] Readahead fixes Raghavendra D Prabhu
2011-07-09 19:41 ` Raghavendra D Prabhu
2011-07-09 19:41 ` [PATCH 1/3] mm/readahead: Change the check for PageReadahead into an else-if Raghavendra D Prabhu
2011-07-09 19:41   ` Raghavendra D Prabhu
2011-07-09 20:47   ` Wu Fengguang
2011-07-09 20:47     ` Wu Fengguang
2011-07-09 19:41 ` [PATCH 2/3] mm/readahead: Remove file_ra_state from arguments of count_history_pages Raghavendra D Prabhu
2011-07-09 19:41   ` Raghavendra D Prabhu
2011-07-09 20:47   ` Wu Fengguang
2011-07-09 20:47     ` Wu Fengguang
2011-07-09 19:41 ` [PATCH 3/3] mm/readahead: Move the check for ra_pages after VM_SequentialReadHint() Raghavendra D Prabhu
2011-07-09 19:41   ` Raghavendra D Prabhu
2011-07-09 20:53   ` Wu Fengguang
2011-07-09 20:53     ` Wu Fengguang
2011-07-10 12:59     ` [TOME] " Raghavendra D Prabhu
2011-07-10 15:59       ` Wu Fengguang [this message]
2011-07-10 15:59         ` Wu Fengguang
2011-07-11 23:02         ` Re. Revised [PATCH 3/3] mm/readahead: Remove the check for ra->ra_pages Raghavendra D Prabhu
2011-07-11 23:02           ` Raghavendra D Prabhu
2011-07-12 18:09           ` Wu Fengguang
2011-07-12 18:09             ` Wu Fengguang

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=20110710155906.GB7432@localhost \
    --to=fengguang.wu@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=rprabhu@wnohang.net \
    /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.