linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Balbir Singh <balbir@linux.vnet.ibm.com>
To: Rik van Riel <riel@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [patch 00/19] VM pageout scalability improvements
Date: Fri, 11 Jan 2008 16:11:15 +0530	[thread overview]
Message-ID: <20080111104115.GA19814@balbir.in.ibm.com> (raw)
In-Reply-To: <20080108205939.323955454@redhat.com>

* Rik van Riel <riel@redhat.com> [2008-01-08 15:59:39]:

> On large memory systems, the VM can spend way too much time scanning
> through pages that it cannot (or should not) evict from memory. Not
> only does it use up CPU time, but it also provokes lock contention
> and can leave large systems under memory presure in a catatonic state.
> 
> Against 2.6.24-rc6-mm1
> 
> This patch series improves VM scalability by:
> 
> 1) making the locking a little more scalable
> 
> 2) putting filesystem backed, swap backed and non-reclaimable pages
>    onto their own LRUs, so the system only scans the pages that it
>    can/should evict from memory
> 
> 3) switching to SEQ replacement for the anonymous LRUs, so the
>    number of pages that need to be scanned when the system
>    starts swapping is bound to a reasonable number
> 
> More info on the overall design can be found at:
> 
> 	http://linux-mm.org/PageReplacementDesign
> 
> 
> Changelog:
> - merge memcontroller split LRU code into the main split LRU patch,
>   since it is not functionally different (it was split up only to help
>   people who had seen the last version of the patch series review it)
> - drop the page_file_cache debugging patch, since it never triggered
> - reintroduce code to not scan anon list if swap is full
> - add code to scan anon list if page cache is very small already
> - use lumpy reclaim more aggressively for smaller order > 1 allocations
>

Hi, Rik,

I've just started the patch series, the compile fails for me on a
powerpc box. global_lru_pages() is defined under CONFIG_PM, but used
else where in mm/page-writeback.c. None of the global_lru_pages()
parameters depend on CONFIG_PM. Here's a simple patch to fix it.

diff --git a/mm/page-writeback.c b/mm/page-writeback.c
diff --git a/mm/vmscan.c b/mm/vmscan.c
index b14e188..39e6aef 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1920,6 +1920,14 @@ void wakeup_kswapd(struct zone *zone, int order)
 	wake_up_interruptible(&pgdat->kswapd_wait);
 }
 
+unsigned long global_lru_pages(void)
+{
+	return global_page_state(NR_ACTIVE_ANON)
+		+ global_page_state(NR_ACTIVE_FILE)
+		+ global_page_state(NR_INACTIVE_ANON)
+		+ global_page_state(NR_INACTIVE_FILE);
+}
+
 #ifdef CONFIG_PM
 /*
  * Helper function for shrink_all_memory().  Tries to reclaim 'nr_pages' pages
@@ -1968,14 +1976,6 @@ static unsigned long shrink_all_zones(unsigned long nr_pages, int prio,
 	return ret;
 }
 
-unsigned long global_lru_pages(void)
-{
-	return global_page_state(NR_ACTIVE_ANON)
-		+ global_page_state(NR_ACTIVE_FILE)
-		+ global_page_state(NR_INACTIVE_ANON)
-		+ global_page_state(NR_INACTIVE_FILE);
-}
-
 /*
  * Try to free `nr_pages' of memory, system-wide, and return the number of
  * freed pages.

-- 
	Warm Regards,
	Balbir Singh
	Linux Technology Center
	IBM, ISTL

--
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:[~2008-01-11 10:41 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-08 20:59 [patch 00/19] VM pageout scalability improvements Rik van Riel
2008-01-08 20:59 ` [patch 01/19] move isolate_lru_page() to vmscan.c Rik van Riel
2008-01-08 22:03   ` Christoph Lameter
2008-01-08 20:59 ` [patch 02/19] free swap space on swap-in/activation Rik van Riel
2008-01-08 22:10   ` Christoph Lameter
2008-01-08 20:59 ` [patch 03/19] define page_file_cache() function Rik van Riel
2008-01-08 22:18   ` Christoph Lameter
2008-01-08 22:28     ` Rik van Riel
2008-01-09  4:26       ` KAMEZAWA Hiroyuki
2008-01-08 20:59 ` [patch 04/19] Use an indexed array for LRU variables Rik van Riel
2008-01-08 20:59 ` [patch 05/19] split LRU lists into anon & file sets Rik van Riel
2008-01-08 22:22   ` Christoph Lameter
2008-01-08 22:36     ` Rik van Riel
2008-01-08 22:42       ` Christoph Lameter
2008-01-09  2:45         ` Rik van Riel
2008-01-09  4:41   ` KAMEZAWA Hiroyuki
2008-01-10  2:21     ` Balbir Singh
2008-01-10  2:36       ` KAMEZAWA Hiroyuki
2008-01-10  3:26         ` Balbir Singh
2008-01-10  4:23           ` KAMEZAWA Hiroyuki
2008-01-10  2:28   ` KAMEZAWA Hiroyuki
2008-01-10  2:37     ` Rik van Riel
2008-01-11  3:59   ` KOSAKI Motohiro
2008-01-11 15:37     ` Rik van Riel
2008-01-11  6:24   ` KOSAKI Motohiro
2008-01-11 15:42     ` Rik van Riel
2008-01-11 15:59       ` Lee Schermerhorn
2008-01-11 16:15         ` Rik van Riel
2008-01-11 19:51           ` Lee Schermerhorn
2008-01-11 15:50     ` Lee Schermerhorn
2008-01-11 16:06       ` Rik van Riel
2008-01-11  7:35   ` KOSAKI Motohiro
2008-01-11 15:46     ` Rik van Riel
2008-01-14 23:57       ` KOSAKI Motohiro
2008-01-30  3:25   ` KOSAKI Motohiro
2008-01-30  8:57     ` KOSAKI Motohiro
2008-01-30 14:29       ` Lee Schermerhorn
2008-01-31  1:17         ` KOSAKI Motohiro
2008-01-31 10:48           ` Rik van Riel
2008-01-31 10:59             ` KOSAKI Motohiro
2008-02-07  0:35       ` Rik van Riel
2008-02-07  1:20         ` KOSAKI Motohiro
2008-02-07  1:36           ` Rik van Riel
2008-01-08 20:59 ` [patch 06/19] SEQ replacement for anonymous pages Rik van Riel
2008-01-08 20:59 ` [patch 07/19] (NEW) add some sanity checks to get_scan_ratio Rik van Riel
2008-01-09  4:16   ` KAMEZAWA Hiroyuki
2008-01-09 12:53     ` Rik van Riel
2008-01-08 20:59 ` [patch 08/19] add newly swapped in pages to the inactive list Rik van Riel
2008-01-08 22:28   ` Christoph Lameter
2008-01-08 20:59 ` [patch 09/19] (NEW) more aggressively use lumpy reclaim Rik van Riel
2008-01-08 22:30   ` Christoph Lameter
2008-01-14 15:28     ` Mel Gorman
2008-01-08 20:59 ` [patch 10/19] No Reclaim LRU Infrastructure Rik van Riel
2008-01-11  4:36   ` KOSAKI Motohiro
2008-01-11 15:43     ` Lee Schermerhorn
2008-01-15  0:06       ` KOSAKI Motohiro
2008-01-08 20:59 ` [patch 11/19] Non-reclaimable page statistics Rik van Riel
2008-01-08 20:59 ` [patch 12/19] scan noreclaim list for reclaimable pages Rik van Riel
2008-01-08 20:59 ` [patch 13/19] ramfs pages are non-reclaimable Rik van Riel
2008-01-08 20:59 ` [patch 14/19] SHM_LOCKED pages are nonreclaimable Rik van Riel
2008-01-08 20:59 ` [patch 15/19] non-reclaimable mlocked pages Rik van Riel
2008-01-08 20:59 ` [patch 16/19] mlock vma pages under mmap_sem held for read Rik van Riel
2008-01-08 20:59 ` [patch 17/19] handle mlocked pages during map/unmap and truncate Rik van Riel
2008-01-08 20:59 ` [patch 18/19] account mlocked pages Rik van Riel
2008-01-11 12:51   ` Balbir Singh
2008-01-13  5:18     ` Rik van Riel
2008-01-08 20:59 ` [patch 19/19] cull non-reclaimable anon pages from the LRU at fault time Rik van Riel
2008-01-10  4:39 ` [patch 00/19] VM pageout scalability improvements Mike Snitzer
2008-01-10 15:41   ` Rik van Riel
2008-01-10 16:08     ` Mike Snitzer
2008-01-11 10:41 ` Balbir Singh [this message]
2008-01-11 15:38   ` Rik van Riel
2008-01-11 11:47 ` Balbir Singh
2008-01-16  6:17 ` rvr split LRU minor regression ? KOSAKI Motohiro
  -- strict thread matches above, loose matches on Subject: below --
2008-01-02 22:41 [patch 00/19] VM pageout scalability improvements linux-kernel
2008-01-03  3:44 ` Rik van Riel
2008-01-10  2:39   ` Christoph Lameter
2008-01-10  3:14     ` Rik van Riel
2008-01-03 16:52 ` Lee Schermerhorn
2008-01-03 17:00   ` Rik van Riel
2008-01-03 17:13     ` Lee Schermerhorn
2008-01-03 22:00       ` Rik van Riel
2008-01-04 16:25         ` Lee Schermerhorn
2008-01-04 16:34           ` Andi Kleen
2008-01-04 16:55             ` Rik van Riel
2008-01-04 18:07               ` Larry Woodman
2008-01-04 17:06             ` Lee Schermerhorn
2008-01-07 19:07               ` Christoph Lameter
2008-01-07 19:32                 ` Rik van Riel
2008-01-07 10:06     ` KAMEZAWA Hiroyuki
2008-01-07 15:18       ` Rik van Riel

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=20080111104115.GA19814@balbir.in.ibm.com \
    --to=balbir@linux.vnet.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --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;
as well as URLs for NNTP newsgroup(s).