linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk>,
	Rik van Riel <riel@redhat.com>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Izik Eidus <ieidus@redhat.com>,
	akpm@linux-foundation.org, chrisw@redhat.com, avi@redhat.com,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	nickpiggin@yahoo.com.au, Wu Fengguang <fengguang.wu@intel.com>
Subject: Re: [PATCH 06/10] ksm: identify PageKsm pages
Date: Thu, 23 Jul 2009 07:49:43 -0400	[thread overview]
Message-ID: <1248349783.5674.2.camel@useless.americas.hpqcorp.net> (raw)
In-Reply-To: <20090723110655.f08cdcdc.kamezawa.hiroyu@jp.fujitsu.com>

On Thu, 2009-07-23 at 11:06 +0900, KAMEZAWA Hiroyuki wrote:
> On Wed, 22 Jul 2009 13:54:06 +0100 (BST)
> Hugh Dickins <hugh.dickins@tiscali.co.uk> wrote:
> 
> > On Tue, 21 Jul 2009, Rik van Riel wrote:
> > > Andrea Arcangeli wrote:
> > > > > -	if (PageAnon(old_page)) {
> > > > > +	if (PageAnon(old_page) && !PageKsm(old_page)) {
> > > > >    if (!trylock_page(old_page)) {
> > > > >     page_cache_get(old_page);
> > > > >     pte_unmap_unlock(page_table, ptl);
> > > > 
> > > > What exactly does it buy to have PageAnon return 1 on ksm pages,
> > > > besides requiring the above additional check (that if we stick to the
> > > > above code, I would find safer to move inside reuse_swap_page).
> > > 
> > > I guess that if they are to remain unswappable, they
> > > should go onto the unevictable list.
> > 
> > The KSM pages are not put on any LRU, so wouldn't be slowing vmscan
> > down with futile scans: isn't the unevictable list for pages which
> > belong to another LRU once they become evictable again?
> > 
> > (At this instant I've forgotten why there's an unevictable list at
> > all - somewhere in vmscan.c which is accustomed to dealing with
> > pages on lists, so easier to have them on a list than not?)
> > 
> I forget, too. But in short thinking, Unevictable pages should be
> on LRU (marked as PG_lru) for isolating page (from LRU) called by
> page migration etc.
> 
> isolate_lru_page()
> 	-> put page on private list
> 	-> do some work
> 	-> putback_lru_page()
> 
> sequence is useful at handling pages in a list.
> Because mlock/munclock can be called arbitrarily, unevicatable lru
> works enough good for making above kinds of code simpler.

Right.  Quoting from Documentation/vm/unevictable-lru.txt:

The Unevictable LRU infrastructure maintains unevictable pages on an additional
LRU list for a few reasons:
 
 (1) We get to "treat unevictable pages just like we treat other pages in the
     system - which means we get to use the same code to manipulate them, the
     same code to isolate them (for migrate, etc.), the same code to keep track
     of the statistics, etc..." [Rik van Riel]

 (2) We want to be able to migrate unevictable pages between nodes for memory
     defragmentation, workload management and memory hotplug.  The linux kernel
     can only migrate pages that it can successfully isolate from the LRU
     lists.  If we were to maintain pages elsewhere than on an LRU-like list,
     where they can be found by isolate_lru_page(), we would prevent their
     migration, unless we reworked migration code to find the unevictable pages
     itself.


I guess "a few" became "a couple" over time...

Lee

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

  parent reply	other threads:[~2009-07-23 11:49 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-17 17:30 [PATCH 00/10] ksm resend Izik Eidus
2009-07-17 17:30 ` [PATCH 01/10] ksm: add mmu_notifier set_pte_at_notify() Izik Eidus
2009-07-17 17:30   ` [PATCH 02/10] ksm: first tidy up madvise_vma() Izik Eidus
2009-07-17 17:30     ` [PATCH 03/10] ksm: define MADV_MERGEABLE and MADV_UNMERGEABLE Izik Eidus
2009-07-17 17:30       ` [PATCH 04/10] ksm: the mm interface to ksm Izik Eidus
2009-07-17 17:30         ` [PATCH 05/10] ksm: no debug in page_dup_rmap() Izik Eidus
2009-07-17 17:30           ` [PATCH 06/10] ksm: identify PageKsm pages Izik Eidus
2009-07-17 17:30             ` [PATCH 07/10] ksm: Kernel SamePage Merging Izik Eidus
2009-07-17 17:30               ` [PATCH 08/10] ksm: prevent mremap move poisoning Izik Eidus
2009-07-17 17:30                 ` [PATCH 09/10] ksm: change copyright message Izik Eidus
2009-07-17 17:30                   ` [PATCH 10/10] ksm: change ksm nice level to be 5 Izik Eidus
2009-07-19 13:50                     ` Hugh Dickins
2009-07-20  4:50                     ` Balbir Singh
2009-07-20 11:48                       ` Izik Eidus
2009-07-20 12:14                         ` Balbir Singh
2009-07-20 18:38                     ` Rik van Riel
2009-07-19 13:49                   ` [PATCH 09/10] ksm: change copyright message Hugh Dickins
2009-07-20 18:37                   ` Rik van Riel
2009-07-20 18:37                 ` [PATCH 08/10] ksm: prevent mremap move poisoning Rik van Riel
2009-07-20 18:35               ` [PATCH 07/10] ksm: Kernel SamePage Merging Rik van Riel
2009-07-18  2:45             ` [PATCH 06/10] ksm: identify PageKsm pages Wu Fengguang
2009-07-20 18:32             ` Rik van Riel
2009-07-21 17:51             ` Andrea Arcangeli
2009-07-21 17:55               ` Rik van Riel
2009-07-21 18:01                 ` Andrea Arcangeli
2009-07-21 18:17                   ` Izik Eidus
2009-07-22 12:54                 ` Hugh Dickins
2009-07-23  2:06                   ` KAMEZAWA Hiroyuki
2009-07-23 11:43                     ` Hugh Dickins
2009-07-23 11:49                     ` Lee Schermerhorn [this message]
2009-07-22 12:45               ` Hugh Dickins
2009-07-22 16:52                 ` Andrea Arcangeli
2009-07-23 11:36                   ` Hugh Dickins
2009-07-20 18:11           ` [PATCH 05/10] ksm: no debug in page_dup_rmap() Rik van Riel
2009-07-21  7:16             ` Nick Piggin
2009-07-20 17:38         ` [PATCH 04/10] ksm: the mm interface to ksm Rik van Riel
2009-07-20 15:09       ` [PATCH 03/10] ksm: define MADV_MERGEABLE and MADV_UNMERGEABLE Rik van Riel
2009-07-20 15:44       ` Ralf Baechle
2009-07-20 15:05     ` [PATCH 02/10] ksm: first tidy up madvise_vma() Rik van Riel
2009-07-20 14:48   ` [PATCH 01/10] ksm: add mmu_notifier set_pte_at_notify() Rik van Riel
2009-07-21 17:59 ` [PATCH 00/10] ksm resend Andrea Arcangeli
2009-07-22 13:05   ` Hugh Dickins

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=1248349783.5674.2.camel@useless.americas.hpqcorp.net \
    --to=lee.schermerhorn@hp.com \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=avi@redhat.com \
    --cc=chrisw@redhat.com \
    --cc=fengguang.wu@intel.com \
    --cc=hugh.dickins@tiscali.co.uk \
    --cc=ieidus@redhat.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=nickpiggin@yahoo.com.au \
    --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