From: Nick Piggin <nickpiggin@yahoo.com.au>
To: linux-kernel@vger.kernel.org, Andrew Morton <akpm@osdl.org>
Cc: andrea@suse.de, mason@suse.de
Subject: [patch] vm early reclaim orphaned pages
Date: Fri, 17 Jun 2005 13:23:10 +1000 [thread overview]
Message-ID: <1118978590.5261.4.camel@npiggin-nld.site> (raw)
[-- Attachment #1: Type: text/plain, Size: 199 bytes --]
This any good?
The workload in question is bonnie, with ext3 data=ordered.
Chris has some ReiserFS workloads where orphaned pages build
up that I think were improved.
--
SUSE Labs, Novell Inc.
[-- Attachment #2: vm-early-reclaim-orphaned.patch --]
[-- Type: text/x-patch, Size: 1323 bytes --]
We have workloads where orphaned pages build up and appear to slow
the system down when it starts reclaiming memory.
Stripping the referenced bit from orphaned pages and putting them
on the end of the inactive list should help improve reclaim.
Signed-off-by: Nick Piggin <npiggin@suse.de>
Index: linux-2.6/mm/truncate.c
===================================================================
--- linux-2.6.orig/mm/truncate.c 2005-06-01 16:09:34.000000000 +1000
+++ linux-2.6/mm/truncate.c 2005-06-17 13:01:01.090334444 +1000
@@ -45,11 +45,30 @@
static void
truncate_complete_page(struct address_space *mapping, struct page *page)
{
+ int orphaned = 0;
+
if (page->mapping != mapping)
return;
if (PagePrivate(page))
- do_invalidatepage(page, 0);
+ orphaned = !(do_invalidatepage(page, 0));
+
+ if (orphaned) {
+ /*
+ * Put orphaned pagecache on the end of the inactive
+ * list so it can get reclaimed quickly.
+ */
+ unsigned long flags;
+ struct zone *zone = page_zone(page);
+ spin_lock_irqsave(&zone->lru_lock, flags);
+ ClearPageReferenced(page);
+ if (PageLRU(page)) {
+ list_move_tail(&page->lru, &zone->inactive_list);
+ if (PageActive(page))
+ ClearPageActive(page);
+ }
+ spin_unlock_irqrestore(&zone->lru_lock, flags);
+ }
clear_page_dirty(page);
ClearPageUptodate(page);
next reply other threads:[~2005-06-17 3:23 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-17 3:23 Nick Piggin [this message]
2005-06-17 3:34 ` Andrew Morton
2005-06-17 3:42 ` Nick Piggin
2005-06-17 4:20 ` Andrea Arcangeli
2005-06-20 7:23 ` [patch 1/2] vm early reclaim orphaned pages (take 2) Nick Piggin
2005-06-20 7:24 ` [patch 2/2] stats for orphaned pages (-mm only) Nick Piggin
2005-06-20 7:36 ` Andrew Morton
2005-06-20 7:49 ` Nick Piggin
2005-06-20 7:31 ` [patch 1/2] vm early reclaim orphaned pages (take 2) Andrew Morton
2005-06-20 7:32 ` Nick Piggin
2005-06-23 2:51 ` Rik Van Riel
2005-06-23 3:05 ` Nick Piggin
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=1118978590.5261.4.camel@npiggin-nld.site \
--to=nickpiggin@yahoo.com.au \
--cc=akpm@osdl.org \
--cc=andrea@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mason@suse.de \
/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
all inboxes | Powered by JetHome®