linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Nikita Danilov <nikita@clusterfs.com>
To: linux-mm@kvack.org
Cc: Andrew Morton <AKPM@Osdl.ORG>
Subject: [PATCH]: VM 0/8 pageout fixes
Date: Sun, 17 Apr 2005 21:33:52 +0400	[thread overview]
Message-ID: <16994.40448.409740.477339@gargle.gargle.HOWL> (raw)

Hello, dear SCM developers,

this message preambles a series of patches that:

 - try to improve performance of pageout from tail of the inactive list, and

 - cleanup some VM code.

This is mostly resend of patches already presented on linux-mm and/or lkml at
various times in the past.

Patches are against 2.6.12-rc2. Note: they are not part of and bear no
relation to Lustre.

vm_01-zoneinfo
vm_02-rmap-cleanup
vm_03-skip-writepage
vm_04-dont-rotate-active-list
vm_05-async-writepage
vm_06-page_referenced-move-dirty
vm_07-cluster-pageout
vm_08-SetPageReclaimed-inactive-tail

Below are micro-benchmarking results. Benchmark's pseudo-code, where N and M
are parameters:

        unlink("file");
        fd = open("file", O_CREAT);
        ftruncate(fd, N * GB);
        for (i = 0; i < M; ++ i) {
                for (j = 0; j < N; ++ j) {
                     t0 = time(0);
                     mmap j-th gigabyte of fd;
                     dirty each page in the mmapped region;
                     unmap;
                     print time(0) - t0;
                }
        }

Results for N = 1, M = 8. First column is vanilla kernel, further columns
correspond to patches applied one after another (cleanup patches vm_01 and
vm_02 skipped). Numbers are seconds it took to dirty 1GB. Tests were run with
mem=64m.

2.6.12-rc2:     03    04    05    06    07    08

      70.8    48.4  45.4  45.8  32.3  27.9  28.9
     304.6   269.5 214.4 204.3  93.2  86.0  86.2
     303.5   266.4 199.1 194.8  89.5  85.1  87.7
     307.8   260.0 208.3 194.9  89.9  86.2  85.8
     306.6   268.3 199.5 197.7  92.1  87.1  88.6
     305.3   268.3 206.8 195.0  90.2  84.6  87.2
     305.3   266.6 200.8 199.4  89.5  85.7  87.6
     307.0   271.6 204.7 196.3  89.2  84.6  88.8

File is created at the beginning of this test, so that first iteration always
writes into hole. Block allocation is done during page-out.

Repeating whole test gives no significant variation.

I also tested that patches do not introduce performance regression under
"normal" workload (i.e., when little or no IO is done from VM scanner).

Results for make CC='ccache cc' -j4 bzImage with prefilled ccache cache (after
make allnoconfig):

2.6.12-rc2:     03    04    05    06    07    08
      21.3    21.5  21.3  21.2  21.3  21.3  21.2 elapsed time, seconds.
       0.4     0.3   0.4   0.2   0.5   0.4   0.4 std. deviation over 10 runs

OSDL/STP tests (dbt1-1tier, contest, db3-pgsql, and iozone) also didn't
register regression.

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:[~2005-04-17 17:33 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=16994.40448.409740.477339@gargle.gargle.HOWL \
    --to=nikita@clusterfs.com \
    --cc=AKPM@Osdl.ORG \
    --cc=linux-mm@kvack.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox