linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Minchan Kim <minchan.kim@gmail.com>
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: [RFC][PATCH v2 8/8] Don't deactivate many touched page
Date: Fri, 11 Dec 2009 11:11:33 +0900	[thread overview]
Message-ID: <28c262360912101811x1d76d1c3v46ff6773620f94a2@mail.gmail.com> (raw)
In-Reply-To: <20091210163429.2568.A69D9226@jp.fujitsu.com>

Hi, Kosaki.

On Thu, Dec 10, 2009 at 4:35 PM, KOSAKI Motohiro
<kosaki.motohiro@jp.fujitsu.com> wrote:
> Changelog
>  o from v1
>   - Fix comments.
>   - Rename too_many_young_bit_found() with too_many_referenced()
>     [as Rik's mention].
>  o from andrea's original patch
>   - Rebase topon my patches.
>   - Use list_cut_position/list_splice_tail pair instead
>     list_del/list_add to make pte scan fairness.
>   - Only use max young threshold when soft_try is true.
>     It avoid wrong OOM sideeffect.
>   - Return SWAP_AGAIN instead successful result if max
>     young threshold exceed. It prevent the pages without clear
>     pte young bit will be deactivated wrongly.
>   - Add to treat ksm page logic
>
> Many shared and frequently used page don't need deactivate and
> try_to_unamp(). It's pointless while VM pressure is low, the page
> might reactivate soon. it's only makes cpu wasting.
>
> Then, This patch makes to stop pte scan if wipe_page_reference()
> found lots young pte bit.
>
> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
> Reviewed-by: Rik van Riel <riel@redhat.com>
> ---
>  include/linux/rmap.h |   18 ++++++++++++++++++
>  mm/ksm.c             |    4 ++++
>  mm/rmap.c            |   19 +++++++++++++++++++
>  3 files changed, 41 insertions(+), 0 deletions(-)
>
> diff --git a/include/linux/rmap.h b/include/linux/rmap.h
> index 499972e..ddf2578 100644
> --- a/include/linux/rmap.h
> +++ b/include/linux/rmap.h
> @@ -128,6 +128,24 @@ int wipe_page_reference_one(struct page *page,
>                            struct page_reference_context *refctx,
>                            struct vm_area_struct *vma, unsigned long address);
>
> +#define MAX_YOUNG_BIT_CLEARED 64
> +/*

This idea is good at embedded system which don't have access bit by hardware.

Such system emulates access bit as minor page fault AFAIK.
It means when VM clears young bit, kernel mark page table as non-permission
or something for refaulting.
So when next touch happens that address, kernel can do young bit set again.
It would be rather costly operation than one which have access bit by hardware.

So  this idea is good in embedded system.
But 64 is rather big. many embedded system don't have many processes.
So I want to scale this number according to memory size like
inactive_raio for example.

Thanks for good idea and effort. :)

-- 
Kind regards,
Minchan Kim

--
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>

  reply	other threads:[~2009-12-11  2:11 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-10  7:28 [RFC][PATCH v2 0/8] vmscan: AIM7 scalability improvement KOSAKI Motohiro
2009-12-10  7:29 ` [RFC][PATCH v2 1/8] Replace page_mapping_inuse() with page_mapped() KOSAKI Motohiro
2009-12-10  7:30 ` [RFC][PATCH v2 2/8] Introduce __page_check_address KOSAKI Motohiro
2009-12-10  7:31 ` [RFC][PATCH v2 3/8] VM_LOCKED check don't need pte lock KOSAKI Motohiro
2009-12-10  7:32 ` [RFC][PATCH v2 4/8] Replace page_referenced() with wipe_page_reference() KOSAKI Motohiro
2009-12-10 12:54   ` Larry Woodman
2009-12-10 23:46     ` KOSAKI Motohiro
2009-12-10  7:32 ` [RFC][PATCH v2 5/8] Don't deactivate the page if trylock_page() is failed KOSAKI Motohiro
2009-12-10  7:33 ` [RFC][PATCH v2 6/8] wipe_page_reference return SWAP_AGAIN if VM pressulre is low and lock contention is detected KOSAKI Motohiro
2009-12-10  7:34 ` [RFC][PATCH v2 7/8] Try to mark PG_mlocked if wipe_page_reference find VM_LOCKED vma KOSAKI Motohiro
2009-12-10  7:35 ` [RFC][PATCH v2 8/8] Don't deactivate many touched page KOSAKI Motohiro
2009-12-11  2:11   ` Minchan Kim [this message]
2009-12-10  7:53 ` [RFC][PATCH v2 0/8] vmscan: AIM7 scalability improvement 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=28c262360912101811x1d76d1c3v46ff6773620f94a2@mail.gmail.com \
    --to=minchan.kim@gmail.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox