linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Nikita Danilov <Nikita@Namesys.COM>
To: Nick Piggin <piggin@cyberone.com.au>
Cc: Hugh Dickins <hugh@veritas.com>, Andrew Morton <akpm@osdl.org>,
	linux-mm@kvack.org
Subject: Re: [PATCH 0/5] mm improvements
Date: Thu, 5 Feb 2004 17:03:19 +0300	[thread overview]
Message-ID: <16418.19751.234876.491644@laputa.namesys.com> (raw)
In-Reply-To: <4021A6BA.5000808@cyberone.com.au>

[-- Attachment #1: message body text --]
[-- Type: text/plain, Size: 1692 bytes --]

Nick Piggin writes:
 > 
 > 
 > Nikita Danilov wrote:
 > 
 > >Hugh Dickins writes:
 > > > On Wed, 4 Feb 2004, Nikita Danilov wrote:
 > > > > Hugh Dickins writes:
 > > > >  > If you go the writepage-while-mapped route (more general gotchas?
 > > > >  > I forget), you'll have to make an exception for shmem_writepage.
 > > > > 
 > > > > May be one can just call try_to_unmap() from shmem_writepage()?
 > > > 
 > > > That sounds much cleaner.  But I've not yet found what tree your
 > > > p12-dont-unmap-on-pageout.patch applies to, so cannot judge it.
 > >
 > >Whole
 > >ftp://ftp.namesys.com/pub/misc-patches/unsupported/extra/2004.02.04/
 > >applies to the 2.6.2-rc2.
 > >
 > >I just updated p12-dont-unmap-on-pageout.patch in-place.
 > >
 > >  
 > >
 > 
 > Sure, I can give this a try. It makes sense.
 > 

To my surprise I have just found that

ftp://ftp.namesys.com/pub/misc-patches/unsupported/extra/2004.02.04/p10-trasnfer-dirty-on-refill.patch

[yes, I know there is a typo in the name.]

patch improves performance quite measurably. It implements a suggestion
made in the comment in refill_inactive_zone():

 			/*
			 * probably it would be useful to transfer dirty bit
			 * from pte to the @page here.
 			 */

To do this page_is_dirty() function is used (the same one as used by
dont-unmap-on-pageout.patch), which is implemented in
check-pte-dirty.patch.

I ran

$ time build.sh 10 11

(attached) and get following elapsed time:

without patch: 3818.320, with patch: 3368.690 (11% improvement).

As I see it, early transfer of dirtiness to the struct page allows to do
more write-back through ->writepages() which is much more efficient way
than single-page ->writepage.

Nikita.

[-- Attachment #2: build.sh --]
[-- Type: text/plain, Size: 726 bytes --]

#! /bin/sh

nr=$1
pl=$2

path=/usr/src/linux-2.5.59-mm6/

s=$(seq 1 $nr)

function emit()
{
	echo $*
	xtermset -T "$*"
}

emit Removing
rm -fr [0-9]* linux* 2> /dev/null

emit Copying
cp -r $path . 2>/dev/null

emit Cloning
for i in $s ;do
	bk clone linux-2.5.59-mm6 $i >/dev/null 2>/dev/null &
done
wait

emit Unpacking
for i in $s ;do
        cd $i
        bk -r get -q &
        cd ..
done

wait

emit Cleaning
for i in $s ;do
        cd $i
        make mrproper >/dev/null 2>/dev/null &
        cd ..
done

wait

emit Building
for i in $s ;do
        cd $i
        cp ../.config .
        yes | make oldconfig >/dev/null 2>/dev/null
        make -j$pl bzImage >/dev/null 2>/dev/null &
        cd ..
done

wait

emit done.

  reply	other threads:[~2004-02-05 14:03 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-04  9:39 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
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 [this message]
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=16418.19751.234876.491644@laputa.namesys.com \
    --to=nikita@namesys.com \
    --cc=akpm@osdl.org \
    --cc=hugh@veritas.com \
    --cc=linux-mm@kvack.org \
    --cc=piggin@cyberone.com.au \
    /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