Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Andrew Morton
Date: Friday, June 6, 2008 - 6:05 pm

On Fri, 06 Jun 2008 16:28:51 -0400
Rik van Riel <riel@redhat.com> wrote:


Having a config option for this really sucks, and needs extra-special
justification, rather than none.

Plus..

akpm:/usr/src/25> find . -name '*.[ch]' | xargs grep CONFIG_NORECLAIM_LRU 
./drivers/base/node.c:#ifdef CONFIG_NORECLAIM_LRU
./drivers/base/node.c:#ifdef CONFIG_NORECLAIM_LRU
./fs/proc/proc_misc.c:#ifdef CONFIG_NORECLAIM_LRU
./fs/proc/proc_misc.c:#ifdef CONFIG_NORECLAIM_LRU
./include/linux/mmzone.h:#ifdef CONFIG_NORECLAIM_LRU
./include/linux/mmzone.h:#ifdef CONFIG_NORECLAIM_LRU
./include/linux/mmzone.h:#ifdef CONFIG_NORECLAIM_LRU
./include/linux/page-flags.h:#ifdef CONFIG_NORECLAIM_LRU
./include/linux/page-flags.h:#ifdef CONFIG_NORECLAIM_LRU
./include/linux/pagemap.h:#ifdef CONFIG_NORECLAIM_LRU
./include/linux/swap.h:#ifdef CONFIG_NORECLAIM_LRU
./include/linux/vmstat.h:#ifdef CONFIG_NORECLAIM_LRU
./kernel/sysctl.c:#ifdef CONFIG_NORECLAIM_LRU
./mm/internal.h:#ifdef CONFIG_NORECLAIM_LRU
./mm/page_alloc.c:#ifdef CONFIG_NORECLAIM_LRU
./mm/page_alloc.c:#ifdef CONFIG_NORECLAIM_LRU
./mm/page_alloc.c:#ifdef CONFIG_NORECLAIM_LRU
./mm/page_alloc.c:#ifdef CONFIG_NORECLAIM_LRU
./mm/page_alloc.c:#ifdef CONFIG_NORECLAIM_LRU
./mm/page_alloc.c:#ifdef CONFIG_NORECLAIM_LRU
./mm/page_alloc.c:#ifdef CONFIG_NORECLAIM_LRU
./mm/vmscan.c:#ifdef CONFIG_NORECLAIM_LRU
./mm/vmscan.c:#ifdef CONFIG_NORECLAIM_LRU
./mm/vmscan.c:#ifdef CONFIG_NORECLAIM_LRU
./mm/vmstat.c:#ifdef CONFIG_NORECLAIM_LRU
./mm/vmstat.c:#ifdef CONFIG_NORECLAIM_LRU



The changelog doesn't even mention, let alone explain and justify the
fact that this feature is not available on 32-bit systems.  This is a
large drawback - it means that a (hopefully useful) feature is
unavailable to the large majority of Linux systems and that it reduces
the testing coverage and that it adversely impacts MM maintainability.


Aunt Tillie might be struggling with some of that.


I fear that we're messing up the terminology here.

Go into your 2.6.25 tree and do `grep -i reclaimable */*.c'.  The term
already means a few different things, but in the vmscan context,
"reclaimable" means that the page is unreferenced, clean and can be
stolen.  "reclaimable" also means a lot of other things, and we just
made that worse.

Can we think of a new term which uniquely describes this new concept
and use that, rather than flogging the old horse?


How does a task "make a page reclaimable"?  munlock()?  fsync()? 
exit()?

Choice of terminology matters...


If this ever triggers, you'll wish that it had been coded with two
separate assertions.


The kerneldoc function description is missing.


<stares for a while>

<penny drops>

So THAT'S what the magical "return 2" is doing in page_file_cache()!

<looks>

OK, after all the patches are applied, the "2" becomes LRU_FILE and the
enumeration of `enum lru_list' reflects that.


Again, the terminology is quite overloaded and confusing.  What does
"non-reclaimable" mean in this context?  _Any_ page which was dirty or
which had an elevated refcount?  Surely not referenced pages, which the
scanner also can treat as non-reclaimable.

Did you check whether all these inlined functions really should have
been inlined?  Even ones like this are probably too large.


I guess that something along the lines of "when this function is being
called for lumpy reclaim we can still .." would be clearer.


--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH -mm 13/25] Noreclaim LRU Infrastructure, Rik van Riel, (Fri Jun 6, 1:28 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Andrew Morton, (Fri Jun 6, 6:05 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Rik van Riel, (Sun Jun 8, 1:34 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Andrew Morton, (Sun Jun 8, 1:57 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, KOSAKI Motohiro, (Sun Jun 8, 2:07 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Rik van Riel, (Sun Jun 8, 2:32 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Rik van Riel, (Sun Jun 8, 3:03 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Andrew Morton, (Sun Jun 8, 4:22 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Rik van Riel, (Sun Jun 8, 4:34 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Andrew Morton, (Sun Jun 8, 4:54 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Rik van Riel, (Sun Jun 8, 5:56 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Rik van Riel, (Sun Jun 8, 7:58 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Andrew Morton, (Sun Jun 8, 10:44 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Andrew Morton, (Sun Jun 8, 11:10 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Rik van Riel, (Mon Jun 9, 6:44 am)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Christoph Lameter, (Tue Jun 10, 12:17 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Rik van Riel, (Tue Jun 10, 12:37 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Rik van Riel, (Tue Jun 10, 1:09 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Andrew Morton, (Tue Jun 10, 2:33 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Andi Kleen, (Tue Jun 10, 2:48 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Dave Hansen, (Tue Jun 10, 3:05 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Paul Mundt, (Tue Jun 10, 10:09 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Andrew Morton, (Tue Jun 10, 11:16 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Paul Mundt, (Tue Jun 10, 11:29 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Andi Kleen, (Wed Jun 11, 5:06 am)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Andy Whitcroft, (Wed Jun 11, 12:03 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Andi Kleen, (Wed Jun 11, 1:52 pm)
Re: [PATCH -mm 13/25] Noreclaim LRU Infrastructure, Christoph Lameter, (Wed Jun 11, 4:25 pm)