From: Johannes Weiner <hannes@cmpxchg.org>
To: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
linux-mm <linux-mm@kvack.org>, Rik van Riel <riel@redhat.com>,
Andrea Arcangeli <aarcange@redhat.com>,
Larry Woodman <lwoodman@redhat.com>
Subject: Re: [PATCH 1/7] Replace page_mapping_inuse() with page_mapped()
Date: Mon, 7 Dec 2009 12:27:05 +0100 [thread overview]
Message-ID: <20091207112705.GA5772@cmpxchg.org> (raw)
In-Reply-To: <20091204174016.5894.A69D9226@jp.fujitsu.com>
On Fri, Dec 04, 2009 at 05:41:35PM +0900, KOSAKI Motohiro wrote:
> From c0cd3ee2bb13567a36728600a86f43abac3125b5 Mon Sep 17 00:00:00 2001
> From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> Date: Wed, 2 Dec 2009 12:05:26 +0900
> Subject: [PATCH 1/7] Replace page_mapping_inuse() with page_mapped()
>
> page reclaim logic need to distingish mapped and unmapped pages.
> However page_mapping_inuse() don't provide proper test way. it test
> the address space (i.e. file) is mmpad(). Why `page' reclaim need
> care unrelated page's mapped state? it's unrelated.
>
> Thus, This patch replace page_mapping_inuse() with page_mapped()
>
> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> Reviewed-by: Rik van Riel <riel@redhat.com>
Reviewed-by: Johannes Weiner <hannes@cmpxchg.org>
> ---
> mm/vmscan.c | 25 ++-----------------------
> 1 files changed, 2 insertions(+), 23 deletions(-)
>
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index da6cf42..4ba08da 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -262,27 +262,6 @@ unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask,
> return ret;
> }
>
> -/* Called without lock on whether page is mapped, so answer is unstable */
> -static inline int page_mapping_inuse(struct page *page)
> -{
> - struct address_space *mapping;
> -
> - /* Page is in somebody's page tables. */
> - if (page_mapped(page))
> - return 1;
> -
> - /* Be more reluctant to reclaim swapcache than pagecache */
> - if (PageSwapCache(page))
> - return 1;
> -
> - mapping = page_mapping(page);
> - if (!mapping)
> - return 0;
> -
> - /* File is mmap'd by somebody? */
> - return mapping_mapped(mapping);
> -}
> -
> static inline int is_page_cache_freeable(struct page *page)
> {
> /*
> @@ -649,7 +628,7 @@ static unsigned long shrink_page_list(struct list_head *page_list,
> * try_to_unmap moves it to unevictable list
> */
> if (sc->order <= PAGE_ALLOC_COSTLY_ORDER &&
> - referenced && page_mapping_inuse(page)
> + referenced && page_mapped(page)
> && !(vm_flags & VM_LOCKED))
> goto activate_locked;
>
> @@ -1356,7 +1335,7 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
> }
>
> /* page_referenced clears PageReferenced */
> - if (page_mapping_inuse(page) &&
> + if (page_mapped(page) &&
> page_referenced(page, 0, sc->mem_cgroup, &vm_flags)) {
> nr_rotated++;
> /*
> --
> 1.6.5.2
>
>
>
> --
> 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>
WARNING: multiple messages have this Message-ID (diff)
From: Johannes Weiner <hannes@cmpxchg.org>
To: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
linux-mm <linux-mm@kvack.org>, Rik van Riel <riel@redhat.com>,
Andrea Arcangeli <aarcange@redhat.com>,
Larry Woodman <lwoodman@redhat.com>
Subject: Re: [PATCH 1/7] Replace page_mapping_inuse() with page_mapped()
Date: Mon, 7 Dec 2009 12:27:05 +0100 [thread overview]
Message-ID: <20091207112705.GA5772@cmpxchg.org> (raw)
In-Reply-To: <20091204174016.5894.A69D9226@jp.fujitsu.com>
On Fri, Dec 04, 2009 at 05:41:35PM +0900, KOSAKI Motohiro wrote:
> From c0cd3ee2bb13567a36728600a86f43abac3125b5 Mon Sep 17 00:00:00 2001
> From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> Date: Wed, 2 Dec 2009 12:05:26 +0900
> Subject: [PATCH 1/7] Replace page_mapping_inuse() with page_mapped()
>
> page reclaim logic need to distingish mapped and unmapped pages.
> However page_mapping_inuse() don't provide proper test way. it test
> the address space (i.e. file) is mmpad(). Why `page' reclaim need
> care unrelated page's mapped state? it's unrelated.
>
> Thus, This patch replace page_mapping_inuse() with page_mapped()
>
> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> Reviewed-by: Rik van Riel <riel@redhat.com>
Reviewed-by: Johannes Weiner <hannes@cmpxchg.org>
> ---
> mm/vmscan.c | 25 ++-----------------------
> 1 files changed, 2 insertions(+), 23 deletions(-)
>
> diff --git a/mm/vmscan.c b/mm/vmscan.c
> index da6cf42..4ba08da 100644
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -262,27 +262,6 @@ unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask,
> return ret;
> }
>
> -/* Called without lock on whether page is mapped, so answer is unstable */
> -static inline int page_mapping_inuse(struct page *page)
> -{
> - struct address_space *mapping;
> -
> - /* Page is in somebody's page tables. */
> - if (page_mapped(page))
> - return 1;
> -
> - /* Be more reluctant to reclaim swapcache than pagecache */
> - if (PageSwapCache(page))
> - return 1;
> -
> - mapping = page_mapping(page);
> - if (!mapping)
> - return 0;
> -
> - /* File is mmap'd by somebody? */
> - return mapping_mapped(mapping);
> -}
> -
> static inline int is_page_cache_freeable(struct page *page)
> {
> /*
> @@ -649,7 +628,7 @@ static unsigned long shrink_page_list(struct list_head *page_list,
> * try_to_unmap moves it to unevictable list
> */
> if (sc->order <= PAGE_ALLOC_COSTLY_ORDER &&
> - referenced && page_mapping_inuse(page)
> + referenced && page_mapped(page)
> && !(vm_flags & VM_LOCKED))
> goto activate_locked;
>
> @@ -1356,7 +1335,7 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
> }
>
> /* page_referenced clears PageReferenced */
> - if (page_mapping_inuse(page) &&
> + if (page_mapped(page) &&
> page_referenced(page, 0, sc->mem_cgroup, &vm_flags)) {
> nr_rotated++;
> /*
> --
> 1.6.5.2
>
>
>
> --
> 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>
--
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:[~2009-12-07 11:27 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-04 8:40 [RFC][PATCH 0/7] some page_referenced() improvement KOSAKI Motohiro
2009-12-04 8:40 ` KOSAKI Motohiro
2009-12-04 8:41 ` [PATCH 1/7] Replace page_mapping_inuse() with page_mapped() KOSAKI Motohiro
2009-12-04 8:41 ` KOSAKI Motohiro
2009-12-07 11:27 ` Johannes Weiner [this message]
2009-12-07 11:27 ` Johannes Weiner
2009-12-04 8:42 ` [PATCH 2/7] Introduce __page_check_address KOSAKI Motohiro
2009-12-04 8:42 ` KOSAKI Motohiro
2009-12-06 14:55 ` Rik van Riel
2009-12-06 14:55 ` Rik van Riel
2009-12-04 8:42 ` [PATCH 3/7] VM_LOCKED check don't need pte lock KOSAKI Motohiro
2009-12-04 8:42 ` KOSAKI Motohiro
2009-12-06 19:41 ` Rik van Riel
2009-12-06 19:41 ` Rik van Riel
2009-12-04 8:43 ` [PATCH 4/7] Replace page_referenced() with wipe_page_reference() KOSAKI Motohiro
2009-12-04 8:43 ` KOSAKI Motohiro
2009-12-06 20:31 ` Rik van Riel
2009-12-06 20:31 ` Rik van Riel
2009-12-04 8:44 ` [PATCH 5/7] Don't deactivate the page if trylock_page() is failed KOSAKI Motohiro
2009-12-04 8:44 ` KOSAKI Motohiro
2009-12-06 20:34 ` Rik van Riel
2009-12-06 20:34 ` Rik van Riel
2009-12-04 8:45 ` [PATCH 6/7] wipe_page_reference return SWAP_AGAIN if VM pressulre is low and lock contention is detected KOSAKI Motohiro
2009-12-04 8:45 ` KOSAKI Motohiro
2009-12-06 21:01 ` Rik van Riel
2009-12-06 21:01 ` Rik van Riel
2009-12-04 8:46 ` [PATCH 7/7] Try to mark PG_mlocked if wipe_page_reference find VM_LOCKED vma KOSAKI Motohiro
2009-12-04 8:46 ` KOSAKI Motohiro
2009-12-06 21:03 ` Rik van Riel
2009-12-06 21:03 ` Rik van Riel
2009-12-07 9:25 ` [RFC][PATCH 0/7] some page_referenced() improvement KOSAKI Motohiro
2009-12-07 9:25 ` KOSAKI Motohiro
2009-12-07 11:36 ` [early RFC][PATCH 8/7] vmscan: Don't deactivate many touched page KOSAKI Motohiro
2009-12-07 11:36 ` KOSAKI Motohiro
2009-12-07 18:10 ` Rik van Riel
2009-12-07 18:10 ` Rik van Riel
2009-12-08 6:27 ` KOSAKI Motohiro
2009-12-08 6:27 ` KOSAKI Motohiro
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=20091207112705.GA5772@cmpxchg.org \
--to=hannes@cmpxchg.org \
--cc=aarcange@redhat.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lwoodman@redhat.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.