From: Johannes Weiner <hannes@cmpxchg.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Minchan Kim <minchan.kim@gmail.com>,
Rik van Riel <riel@redhat.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: mm: used-once mapped file page detection
Date: Fri, 26 Feb 2010 15:32:32 +0100 [thread overview]
Message-ID: <20100226143232.GA13001@cmpxchg.org> (raw)
In-Reply-To: <20100224133946.a5092804.akpm@linux-foundation.org>
On Wed, Feb 24, 2010 at 01:39:46PM -0800, Andrew Morton wrote:
> On Mon, 22 Feb 2010 20:49:07 +0100 Johannes Weiner <hannes@cmpxchg.org> wrote:
>
> > This patch makes the VM be more careful about activating mapped file
> > pages in the first place. The minimum granted lifetime without
> > another memory access becomes an inactive list cycle instead of the
> > full memory cycle, which is more natural given the mentioned loads.
>
> iirc from a long time ago, the insta-activation of mapped pages was
> done because people were getting peeved about having their interactive
> applications (X, browser, etc) getting paged out, and bumping the pages
> immediately was found to help with this subjective problem.
>
> So it was a latency issue more than a throughput issue. I wouldn't be
> surprised if we get some complaints from people for the same reasons as
> a result of this patch.
Agreed. Although we now have other things in place to protect them once
they are active (VM_EXEC protection, lazy active list scanning).
> I guess that during the evaluation period of this change, it would be
> useful to have a /proc knob which people can toggle to revert to the
> old behaviour. So they can verify that this patchset was indeed the
> cause of the deterioration, and so they can easily quantify any
> deterioration?
Sounds like a good idea. By evaluation period, do you mean -mm? Or
would this knob make it upstream as well?
Hannes
From: Johannes Weiner <hannes@cmpxchg.org>
Subject: vmscan: add sysctl to revert mapped file heuristics
During the evaluation period of the used-once mapped file detection,
provide a sysctl to disable the heuristics at runtime, allowing users
to verify it as a source of problems.
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
---
include/linux/swap.h | 1 +
kernel/sysctl.c | 7 +++++++
mm/vmscan.c | 4 +++-
3 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/include/linux/swap.h b/include/linux/swap.h
index a2602a8..0c1e724 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -254,6 +254,7 @@ extern unsigned long shrink_all_memory(unsigned long nr_pages);
extern int vm_swappiness;
extern int remove_mapping(struct address_space *mapping, struct page *page);
extern long vm_total_pages;
+extern int vm_rigid_filemap_protection;
#ifdef CONFIG_NUMA
extern int zone_reclaim_mode;
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 8a68b24..9fa46fb 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1050,6 +1050,13 @@ static struct ctl_table vm_table[] = {
.extra1 = &zero,
.extra2 = &one_hundred,
},
+ {
+ .procname = "rigid_filemap_protection",
+ .data = &vm_rigid_filemap_protection,
+ .maxlen = sizeof(vm_rigid_filemap_protection),
+ .mode = 0644,
+ .proc_handler = proc_dointvec,
+ },
#ifdef CONFIG_HUGETLB_PAGE
{
.procname = "nr_hugepages",
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 819fff7..d494153 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -565,6 +565,8 @@ enum page_references {
PAGEREF_ACTIVATE,
};
+int vm_rigid_filemap_protection __read_mostly;
+
static enum page_references page_check_references(struct page *page,
struct scan_control *sc)
{
@@ -586,7 +588,7 @@ static enum page_references page_check_references(struct page *page,
return PAGEREF_RECLAIM;
if (referenced_ptes) {
- if (PageAnon(page))
+ if (PageAnon(page) || vm_rigid_filemap_protection)
return PAGEREF_ACTIVATE;
/*
* All mapped pages start out with page table
--
1.6.6.1
WARNING: multiple messages have this Message-ID (diff)
From: Johannes Weiner <hannes@cmpxchg.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Minchan Kim <minchan.kim@gmail.com>,
Rik van Riel <riel@redhat.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: mm: used-once mapped file page detection
Date: Fri, 26 Feb 2010 15:32:32 +0100 [thread overview]
Message-ID: <20100226143232.GA13001@cmpxchg.org> (raw)
In-Reply-To: <20100224133946.a5092804.akpm@linux-foundation.org>
On Wed, Feb 24, 2010 at 01:39:46PM -0800, Andrew Morton wrote:
> On Mon, 22 Feb 2010 20:49:07 +0100 Johannes Weiner <hannes@cmpxchg.org> wrote:
>
> > This patch makes the VM be more careful about activating mapped file
> > pages in the first place. The minimum granted lifetime without
> > another memory access becomes an inactive list cycle instead of the
> > full memory cycle, which is more natural given the mentioned loads.
>
> iirc from a long time ago, the insta-activation of mapped pages was
> done because people were getting peeved about having their interactive
> applications (X, browser, etc) getting paged out, and bumping the pages
> immediately was found to help with this subjective problem.
>
> So it was a latency issue more than a throughput issue. I wouldn't be
> surprised if we get some complaints from people for the same reasons as
> a result of this patch.
Agreed. Although we now have other things in place to protect them once
they are active (VM_EXEC protection, lazy active list scanning).
> I guess that during the evaluation period of this change, it would be
> useful to have a /proc knob which people can toggle to revert to the
> old behaviour. So they can verify that this patchset was indeed the
> cause of the deterioration, and so they can easily quantify any
> deterioration?
Sounds like a good idea. By evaluation period, do you mean -mm? Or
would this knob make it upstream as well?
Hannes
From: Johannes Weiner <hannes@cmpxchg.org>
Subject: vmscan: add sysctl to revert mapped file heuristics
During the evaluation period of the used-once mapped file detection,
provide a sysctl to disable the heuristics at runtime, allowing users
to verify it as a source of problems.
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
---
include/linux/swap.h | 1 +
kernel/sysctl.c | 7 +++++++
mm/vmscan.c | 4 +++-
3 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/include/linux/swap.h b/include/linux/swap.h
index a2602a8..0c1e724 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -254,6 +254,7 @@ extern unsigned long shrink_all_memory(unsigned long nr_pages);
extern int vm_swappiness;
extern int remove_mapping(struct address_space *mapping, struct page *page);
extern long vm_total_pages;
+extern int vm_rigid_filemap_protection;
#ifdef CONFIG_NUMA
extern int zone_reclaim_mode;
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 8a68b24..9fa46fb 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1050,6 +1050,13 @@ static struct ctl_table vm_table[] = {
.extra1 = &zero,
.extra2 = &one_hundred,
},
+ {
+ .procname = "rigid_filemap_protection",
+ .data = &vm_rigid_filemap_protection,
+ .maxlen = sizeof(vm_rigid_filemap_protection),
+ .mode = 0644,
+ .proc_handler = proc_dointvec,
+ },
#ifdef CONFIG_HUGETLB_PAGE
{
.procname = "nr_hugepages",
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 819fff7..d494153 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -565,6 +565,8 @@ enum page_references {
PAGEREF_ACTIVATE,
};
+int vm_rigid_filemap_protection __read_mostly;
+
static enum page_references page_check_references(struct page *page,
struct scan_control *sc)
{
@@ -586,7 +588,7 @@ static enum page_references page_check_references(struct page *page,
return PAGEREF_RECLAIM;
if (referenced_ptes) {
- if (PageAnon(page))
+ if (PageAnon(page) || vm_rigid_filemap_protection)
return PAGEREF_ACTIVATE;
/*
* All mapped pages start out with page table
--
1.6.6.1
--
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:[~2010-02-26 14:32 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-22 19:49 mm: used-once mapped file page detection Johannes Weiner
2010-02-22 19:49 ` Johannes Weiner
2010-02-22 19:49 ` [patch 1/3] vmscan: factor out page reference checks Johannes Weiner
2010-02-22 19:49 ` Johannes Weiner
2010-02-22 20:27 ` Rik van Riel
2010-02-22 20:27 ` Rik van Riel
2010-02-23 13:38 ` Minchan Kim
2010-02-23 13:38 ` Minchan Kim
2010-02-23 14:21 ` Johannes Weiner
2010-02-23 14:21 ` Johannes Weiner
2010-02-23 14:31 ` Rik van Riel
2010-02-23 14:31 ` Rik van Riel
2010-02-23 14:44 ` Minchan Kim
2010-02-23 14:44 ` Minchan Kim
2010-02-23 15:40 ` Johannes Weiner
2010-02-23 15:40 ` Johannes Weiner
2010-02-23 16:04 ` Minchan Kim
2010-02-23 16:04 ` Minchan Kim
2010-02-22 19:49 ` [patch 2/3] vmscan: drop page_mapping_inuse() Johannes Weiner
2010-02-22 19:49 ` Johannes Weiner
2010-02-22 20:28 ` Rik van Riel
2010-02-22 20:28 ` Rik van Riel
2010-02-23 14:03 ` Minchan Kim
2010-02-23 14:03 ` Minchan Kim
2010-02-23 14:32 ` Johannes Weiner
2010-02-23 14:32 ` Johannes Weiner
2010-02-23 14:48 ` Minchan Kim
2010-02-23 14:48 ` Minchan Kim
2010-02-22 19:49 ` [patch 3/3] vmscan: detect mapped file pages used only once Johannes Weiner
2010-02-22 19:49 ` Johannes Weiner
2010-02-22 20:34 ` Rik van Riel
2010-02-22 20:34 ` Rik van Riel
2010-02-23 15:03 ` Minchan Kim
2010-02-23 15:03 ` Minchan Kim
2010-02-23 15:45 ` Johannes Weiner
2010-02-23 15:45 ` Johannes Weiner
2010-02-24 21:39 ` mm: used-once mapped file page detection Andrew Morton
2010-02-24 21:39 ` Andrew Morton
2010-02-26 14:32 ` Johannes Weiner [this message]
2010-02-26 14:32 ` Johannes Weiner
2010-02-28 17:49 ` Rik van Riel
2010-02-28 17:49 ` Rik van Riel
2010-02-28 20:36 ` Johannes Weiner
2010-02-28 20:36 ` Johannes Weiner
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=20100226143232.GA13001@cmpxchg.org \
--to=hannes@cmpxchg.org \
--cc=akpm@linux-foundation.org \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=minchan.kim@gmail.com \
--cc=riel@redhat.com \
/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.