From: Andrew Morton <akpm@digeo.com>
To: andrea@suse.de, mbligh@aracnet.com, mingo@elte.hu,
hugh@veritas.com, dmccr@us.ibm.com, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: Re: objrmap and vmtruncate
Date: Sat, 5 Apr 2003 04:06:14 -0800 [thread overview]
Message-ID: <20030405040614.66511e1e.akpm@digeo.com> (raw)
In-Reply-To: <20030404192401.03292293.akpm@digeo.com>
Andrew Morton <akpm@digeo.com> wrote:
>
> Nobody has written an "exploit" for this yet, but it's there.
Here we go. The test app is called `rmap-test'. It is in ext3 CVS. See
http://www.zip.com.au/~akpm/linux/ext3/
It sets up N MAP_SHARED VMA's and N tasks touching them in various access
patterns.
vmm:/usr/src/ext3/tools> ./rmap-test
Usage: ./rmap-test [-hlrvV] [-iN] [-nN] [-sN] [-tN] filename
-h: Pattern: half of memory is busy
-l: Pattern: linear
-r: Pattern: random
-iN: Number of iterations
-nN: Number of VMAs
-sN: VMA size (pages)
-tN: Run N tasks
-VN: Number of VMAs to process
-v: Verbose
The kernels which were compared were 2.5.66-mm4, 2.5.66-mm4+all objrmap
patches and 2.4.21-pre5aa2. The machine has 256MB of memory, 2.7G P4,
uniprocessor, IDE disk.
The first test has 100 tasks, each of which has 100 vma's. The 100 processes
modify their 100 vma's in a linear walk. Total working set is 240MB
(slightly more than is available).
./rmap-test -l -i 10 -n 100 -s 600 -t 100 foo
2.5.66-mm4:
15.76s user 86.91s system 33% cpu 5:05.07 total
2.5.66-mm4+objrmap:
23.07s user 1143.26s system 87% cpu 22:09.81 total
2.4.21-pre5aa2:
14.91s user 75.30s system 24% cpu 6:15.84 total
In the second test we again have 100 tasks, each with 100 vma's but the
access pattern is random:
./rmap-test -vv -V 2 -r -i 1 -n 100 -s 600 -t 100 foo
2.5.66-mm4:
0.12s user 6.05s system 2% cpu 3:59.68 total
2.5.66-mm4+objrmap:
0.12s user 2.10s system 0% cpu 4:01.15 total
2.4.21-pre5aa2:
0.07s user 2.03s system 0% cpu 4:12.69 total
The -aa VM failed in this test.
__alloc_pages: 0-order allocation failed (gfp=0x1d2/0)
VM: killing process rmap-test
I'd have to call this a bug - the machine was full of reclaimable memory.
I also saw the 2.4 kernel do 705,000 context switches in a single second,
which was odd. It only happened once.
In the third test a single task owns 10000 VMA's and walks across them in a
linear pattern:
./rmap-test -v -l -i 10 -n 10000 -s 7 -t 1 foo
2.5.66-mm4:
0.25s user 3.75s system 1% cpu 4:38.44 total
2.5.66-mm4+objrmap:
0.28s user 146.45s system 16% cpu 15:14.59 total
2.4.21-pre5aa2:
0.32s user 4.83s system 0% cpu 18:25.90 total
These are not ridiculous workloads, especially the third one. And 10k VMA's
is by no means inconceivable.
The objrmap code will be show-stoppingly expensive at 100k vmas per file.
And as expected, the full rmap implementation gives the most stable,
predictable and highest performance result under heavy load. That's why
we're using it.
When it comes to the VM, there is a lot of value in sturdiness under unusual
and heavy loads.
Tomorrow I'll change the test app to do nonlinear mappings too.
--
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>
next prev parent reply other threads:[~2003-04-05 12:06 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-04 14:34 Hugh Dickins
2003-04-04 16:14 ` William Lee Irwin III
2003-04-04 16:29 ` Hugh Dickins
2003-04-04 18:54 ` Andrew Morton
2003-04-04 21:43 ` Hugh Dickins
2003-04-04 21:45 ` Andrea Arcangeli
2003-04-04 21:58 ` Benjamin LaHaise
2003-04-04 23:07 ` Andrew Morton
2003-04-05 0:03 ` Andrea Arcangeli
2003-04-05 0:31 ` Andrew Morton
2003-04-05 1:31 ` Andrea Arcangeli
2003-04-05 1:52 ` Benjamin LaHaise
2003-04-05 2:22 ` Andrea Arcangeli
2003-04-05 10:01 ` Jamie Lokier
2003-04-05 10:11 ` William Lee Irwin III
2003-04-05 2:06 ` Andrew Morton
2003-04-05 2:24 ` Andrea Arcangeli
2003-04-05 2:13 ` Martin J. Bligh
2003-04-05 2:44 ` Andrea Arcangeli
2003-04-05 3:24 ` Andrew Morton
2003-04-05 12:06 ` Andrew Morton [this message]
2003-04-05 15:11 ` Martin J. Bligh
[not found] ` <20030405161758.1ee19bfa.akpm@digeo.com>
2003-04-06 0:17 ` Andrew Morton
2003-04-06 7:07 ` William Lee Irwin III
2003-04-05 16:30 ` Andrea Arcangeli
2003-04-05 19:01 ` Andrea Arcangeli
2003-04-05 20:14 ` Andrew Morton
2003-04-05 21:24 ` Andrew Morton
2003-04-05 22:06 ` Andrea Arcangeli
2003-04-05 22:31 ` Andrew Morton
2003-04-05 23:10 ` Andrea Arcangeli
2003-04-06 1:58 ` Andrew Morton
2003-04-06 14:47 ` Andrea Arcangeli
2003-04-06 21:35 ` William Lee Irwin III
2003-04-06 7:38 ` William Lee Irwin III
2003-04-06 14:51 ` Andrea Arcangeli
2003-04-06 12:37 ` Jamie Lokier
2003-04-06 13:12 ` William Lee Irwin III
2003-04-22 11:00 ` Ingo Molnar
2003-04-22 11:54 ` William Lee Irwin III
2003-04-22 14:31 ` Ingo Molnar
2003-04-22 14:56 ` William Lee Irwin III
2003-04-22 15:26 ` Ingo Molnar
2003-04-22 16:20 ` William Lee Irwin III
2003-04-22 16:57 ` Andrea Arcangeli
2003-04-22 17:21 ` William Lee Irwin III
2003-04-22 18:08 ` Andrea Arcangeli
2003-04-22 17:34 ` Ingo Molnar
2003-04-22 18:04 ` Benjamin LaHaise
2003-04-22 16:58 ` Martin J. Bligh
2003-04-22 12:37 ` Andrea Arcangeli
2003-04-22 13:20 ` William Lee Irwin III
2003-04-22 14:38 ` Martin J. Bligh
2003-04-22 15:10 ` William Lee Irwin III
2003-04-22 15:53 ` Martin J. Bligh
2003-04-22 14:52 ` Andrea Arcangeli
2003-04-22 14:29 ` Martin J. Bligh
2003-04-22 15:07 ` Ingo Molnar
2003-04-22 15:42 ` William Lee Irwin III
2003-04-22 15:55 ` Ingo Molnar
2003-04-22 16:58 ` William Lee Irwin III
2003-04-22 17:07 ` Ingo Molnar
2003-04-22 15:16 ` Andrea Arcangeli
2003-04-22 15:49 ` Ingo Molnar
2003-04-22 16:16 ` Martin J. Bligh
2003-04-22 17:24 ` Ingo Molnar
2003-04-22 17:45 ` John Bradford
2003-04-22 14:32 ` Martin J. Bligh
2003-04-22 15:09 ` Ingo Molnar
2003-04-05 21:34 ` Rik van Riel
2003-04-06 9:29 ` Benjamin LaHaise
2003-04-05 23:25 ` William Lee Irwin III
2003-04-05 23:57 ` Andrew Morton
2003-04-06 0:14 ` Andrea Arcangeli
2003-04-06 1:39 ` Andrew Morton
2003-04-06 2:13 ` William Lee Irwin III
2003-04-06 9:26 ` Benjamin LaHaise
2003-04-06 9:41 ` William Lee Irwin III
2003-04-06 9:54 ` William Lee Irwin III
2003-04-06 2:23 ` Martin J. Bligh
2003-04-06 3:55 ` Andrew Morton
2003-04-06 3:08 ` Martin J. Bligh
2003-04-06 7:42 ` William Lee Irwin III
2003-04-06 14:49 ` Alan Cox
2003-04-06 16:13 ` Martin J. Bligh
2003-04-06 21:34 ` subobj-rmap Martin J. Bligh
2003-04-06 21:42 ` subobj-rmap Rik van Riel
2003-04-06 21:55 ` subobj-rmap Jamie Lokier
2003-04-06 22:39 ` subobj-rmap William Lee Irwin III
2003-04-06 22:03 ` subobj-rmap Martin J. Bligh
2003-04-06 22:06 ` subobj-rmap Martin J. Bligh
2003-04-06 22:15 ` subobj-rmap Andrea Arcangeli
2003-04-06 22:25 ` subobj-rmap Martin J. Bligh
2003-04-07 21:25 ` subobj-rmap Andrea Arcangeli
2003-04-06 23:06 ` subobj-rmap Jamie Lokier
2003-04-06 23:26 ` subobj-rmap Martin J. Bligh
2003-04-05 3:45 ` objrmap and vmtruncate Martin J. Bligh
2003-04-05 3:59 ` Rik van Riel
2003-04-05 4:10 ` William Lee Irwin III
2003-04-05 4:49 ` Martin J. Bligh
2003-04-05 13:31 ` Rik van Riel
2003-04-05 4:52 ` Martin J. Bligh
2003-04-05 3:22 ` Andrew Morton
2003-04-05 3:35 ` Martin J. Bligh
2003-04-05 3:53 ` Rik van Riel
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=20030405040614.66511e1e.akpm@digeo.com \
--to=akpm@digeo.com \
--cc=andrea@suse.de \
--cc=dmccr@us.ibm.com \
--cc=hugh@veritas.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mbligh@aracnet.com \
--cc=mingo@elte.hu \
/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