linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Nikita Danilov <Nikita@Namesys.COM>
To: Rik van Riel <riel@redhat.com>
Cc: Nick Piggin <piggin@cyberone.com.au>,
	Andrew Morton <akpm@osdl.org>,
	linux-mm@kvack.org
Subject: Re: [PATCH 3/5] mm improvements
Date: Wed, 4 Feb 2004 19:45:56 +0300	[thread overview]
Message-ID: <16417.8644.203682.640759@laputa.namesys.com> (raw)
In-Reply-To: <Pine.LNX.4.44.0402041027380.24515-100000@chimarrao.boston.redhat.com>

Rik van Riel writes:
 > On Wed, 4 Feb 2004, Nick Piggin wrote:
 > > Nick Piggin wrote:
 > > 
 > > > 3/5: vm-lru-info.patch
 > > >     Keep more referenced info in the active list. Should also improve
 > > >     system time in some cases. Helps swapping loads significantly.
 > 
 > I suspect this is one of the more important ones in this
 > batch of patches...

I don't understand how this works. This patch just parks mapped pages on
the "ignored" segment of the active list, where they rest until
reclaim_mapped mode is entered.

This only makes a difference for the pages that were page_referenced():

1. they are moved to the ignored segment rather than to the head of the
active list.

2. their referenced bit is not cleared

Now, as "ignored" segment is not scanned in !reclaim_mode, (2) would
only make a difference when VM rapidly oscillates between reclaim_mapped
and !reclaim_mapped, because after a long period of !reclaim_mapped
operation preserved referenced bit on a page only means "this page has
been referenced in the past, but not necessary recently".

And if (1) affects performance significantly, that something rotten in
the idea of treating mapped pages preferentially by the replacement, and
the same effect can be achieved by simply increasing vm_swappiness.

Nick, can you test what will be an effect of doing something like

	while (!list_empty(&l_hold)) {
		page = lru_to_page(&l_hold);
		list_del(&page->lru);
		if (page_mapped(page)) {
			int referenced;

			referenced = page_referenced(page);
			if (!reclaim_mapped) {
				list_add(&page->lru, &l_ignore);
				continue;
			}
			pte_chain_lock(page);
			if (page_mapped(page) && referenced) {
				pte_chain_unlock(page);
				list_add(&page->lru, &l_active);
				continue;
			}
			pte_chain_unlock(page);
		}
		...

i.e., by cleaning the referenced bit before moving page to the l_ignore?

 > 

Nikita.
--
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:"aart@kvack.org"> aart@kvack.org </a>

  reply	other threads:[~2004-02-04 16:45 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-04  9:39 [PATCH 0/5] " Nick Piggin
2004-02-04  9:40 ` [PATCH 1/5] " Nick Piggin
2004-02-04 19:45   ` Rik van Riel
2004-02-09  7:00     ` Nick Piggin
2004-02-09 21:56       ` Rik van Riel
2004-02-04  9:40 ` [PATCH 2/5] " Nick Piggin
2004-02-04 10:10   ` Andrew Morton
2004-02-04 10:15     ` Nick Piggin
2004-02-04 15:27     ` Rik van Riel
2004-02-05  2:18       ` Nick Piggin
2004-02-04  9:41 ` [PATCH 3/5] " Nick Piggin
2004-02-04 15:28   ` Rik van Riel
2004-02-04 16:45     ` Nikita Danilov [this message]
2004-02-04 18:53       ` Andrew Morton
2004-02-05  2:10       ` Nick Piggin
2004-02-04  9:42 ` [PATCH 4/5] " Nick Piggin
2004-02-04 10:11   ` Andrew Morton
2004-02-04 10:19     ` Nick Piggin
2004-02-04  9:42 ` [PATCH 5/5] " Nick Piggin
2004-02-04 10:03   ` Nick Piggin
2004-02-04 10:18   ` Andrew Morton
2004-02-04 10:22     ` Nick Piggin
2004-02-04 13:25 ` [PATCH 0/5] " Nikita Danilov
2004-02-04 13:53   ` Hugh Dickins
2004-02-04 14:03     ` Nikita Danilov
2004-02-04 15:03       ` Hugh Dickins
2004-02-04 15:19         ` Nikita Danilov
2004-02-05  2:13           ` Nick Piggin
2004-02-05 14:03             ` Nikita Danilov
2004-02-05 15:11               ` Nick Piggin
2004-02-05 15:15                 ` Nick Piggin
2004-02-05 15:20                   ` Nikita Danilov
2004-02-05 15:33                     ` Nick Piggin
2004-02-05 15:46                       ` Nikita Danilov
2004-02-05 15:56                         ` Nick Piggin
2004-02-05 16:03                           ` Nikita Danilov
2004-02-05 16:09                             ` Nick Piggin
2004-02-04 18:33     ` Andrew Morton
2004-02-04 20:54       ` Hugh Dickins
2004-02-04 21:04         ` Andrew Morton

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=16417.8644.203682.640759@laputa.namesys.com \
    --to=nikita@namesys.com \
    --cc=akpm@osdl.org \
    --cc=linux-mm@kvack.org \
    --cc=piggin@cyberone.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