All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Gene Heskett <gene.heskett@gmail.com>
Cc: LKML <linux-kernel@vger.kernel.org>
Subject: Re: Swappiness fix?
Date: Mon, 1 Dec 2008 22:50:57 -0800	[thread overview]
Message-ID: <20081201225057.06088ccb.akpm@linux-foundation.org> (raw)
In-Reply-To: <200812010435.41540.gene.heskett@gmail.com>

On Mon, 01 Dec 2008 04:35:41 -0500 Gene Heskett <gene.heskett@gmail.com> wrote:

> Greetings;
> 
> Has that patch someone pointed me to made it into -rc6?  I have a bit under 9 
> hours uptime on a 4Gb machine, with a gimp session, email and web browsing, 
> and I see I'm 27 megs into swap.  I do not have the patch now, a drive died.
> However, I may still have the email that contained it, I'll check that.

This?

From: Rik van Riel <riel@redhat.com>

Count the insertion of new pages in the statistics used to drive the
pageout scanning code.  This should help the kernel quickly evict
streaming file IO.

We count on the fact that new file pages start on the inactive file LRU
and new anonymous pages start on the active anon list.  This means
streaming file IO will increment the recent scanned file statistic, while
leaving the recent rotated file statistic alone, driving pageout scanning
to the file LRUs.

Pageout activity does its own list manipulation.

Signed-off-by: Rik van Riel <riel@redhat.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Gene Heskett <gene.heskett@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 mm/swap.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff -puN mm/swap.c~vmscan-evict-streaming-io-first mm/swap.c
--- a/mm/swap.c~vmscan-evict-streaming-io-first
+++ a/mm/swap.c
@@ -445,6 +445,7 @@ void ____pagevec_lru_add(struct pagevec 
 	for (i = 0; i < pagevec_count(pvec); i++) {
 		struct page *page = pvec->pages[i];
 		struct zone *pagezone = page_zone(page);
+		int file;
 
 		if (pagezone != zone) {
 			if (zone)
@@ -456,8 +457,12 @@ void ____pagevec_lru_add(struct pagevec 
 		VM_BUG_ON(PageUnevictable(page));
 		VM_BUG_ON(PageLRU(page));
 		SetPageLRU(page);
-		if (is_active_lru(lru))
+		file = is_file_lru(lru);
+		zone->recent_scanned[file]++;
+		if (is_active_lru(lru)) {
 			SetPageActive(page);
+			zone->recent_rotated[file]++;
+		}
 		add_page_to_lru_list(zone, page, lru);
 	}
 	if (zone)
_

> That patch, IMO should be fast lane'd to make it to .28.

I have it sitting here marked "awaits Gene testing" ;)

      parent reply	other threads:[~2008-12-02  6:51 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-01  9:35 Swappiness fix? Gene Heskett
2008-12-01  9:44 ` KOSAKI Motohiro
2008-12-01  9:44   ` KOSAKI Motohiro
2008-12-02  6:50 ` Andrew Morton [this message]

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=20081201225057.06088ccb.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=gene.heskett@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    /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.