From: "Martin J. Bligh" <Martin.Bligh@us.ibm.com>
To: William Lee Irwin III <wli@holomorphy.com>,
"M. Edward Borasky" <znmeb@aracnet.com>
Cc: linux-kernel@vger.kernel.org, andrea@suse.de, riel@surriel.com,
torvalds@transmeta.com, akpm@zip.com.au
Subject: Re: Have the 2.4 kernel memory management problems on large machines been fixed?
Date: Wed, 22 May 2002 08:44:25 -0700 [thread overview]
Message-ID: <1403412981.1022057064@[10.10.2.3]> (raw)
In-Reply-To: <20020522143651.GA14918@holomorphy.com>
> On Wed, May 22, 2002 at 07:00:11AM -0700, M. Edward Borasky wrote:
>> A few months ago, there was a flurry of reports from people having
>> difficulties with memory management on large machines (ia32 over 4 GB). I've
>> seen a lot of 2.4.x-yy kernels go by and much VM discussion, but what I'm
>> *not* seeing is reports of either catastrophic behavior or its absence on
>> large machines. I haven't had a chance to run my own test cases on the
>> 2.4.18 kernel from Red Hat 7.3 yet, so I can't make any personal
>> contribution to this discussion.
I wouldn't bother using RedHat's kernel for this at the moment,
Andrea's tree is where the development work for this area has all
been happening recently. He's working on integrating O(1) sched
right now, which will get rid of the biggest issue I have with -aa
at the moment (the issue being that I'm too idle^H^H^H^Hbusy to
merge it ;-)).
> The catastrophic failures are still happening, in fact, the last
> lse-tech conference call a week or two ago was dedicated at least in
> part to them. The number of different ways in which these failures
> occur is large, so it's taking a while for the iterations of whack-a-mole
> game to converge to kernel stability. Andrea has probably been doing the
> most visible stuff on this front with the recent bh/inode exhaustion
> patches, with due credit to akpm as well for the unconditional bh
> stripping patch.
The problems we're seeing are mainly KVA exhaustion. The top hitlist
for me at the moment are:
1. PTEs (5000 tasks sharing a 2Gb SGA = 10GB of PTEs).
We have two different implementations of highpte, Andrea's
latest seems to work fairly well, and is much more scalable
than earlier versions. We need to have shared PTEs as well.
I'd encourage people to benchmark the hell out of each
solution, and help us come down to one, or a hybrid of both.
2. rmap pte_chains.
As far as I can see, these consume twice as much space as
the PTEs (ie 20Gb in the case above).
3. buffer_heads
I have over 1Gb of bufferheads in (an enlarged) ZONE_NORMAL
right now. akpm has given me a patch to prune them pretty
viciously on an ongoing basis, Andrea has a patch to prune
them under memory pressure. I have slight concerns about
fragmentation under Andrea's approach, but both patches seem
to work fine - performance still needs to be worked out.
4. struct page
Bill Irwin has already done great things in shrinking this
somewhat, but I think we need to be even more drastic at
some point, and only map the PTEs we need for each process,
into a task (well address-space) specific KVA area, which
I call user-kernel address space or UKVA (search back for
my proposal to do this a couple of months ago).
5. kmap
Persistent kmap sucks, and the global systemwide TLB flushes
scale as O(1/N^2) with the number of CPUs. Enlarging the kmap
area helps a little, but really we need to stop doing this to
ourselves. I will have a patch (hopefully within a week) to do
per-task kmap, based on the UKVA patch that Dave McCracken has
already implemented.
6. vmalloc
Vmalloc space gets quickly exhausted, I think a large part of
that is threads allocating 64K LDTs ... and 2.5 has a recent
fix for that that we need to backport.
There are various other general scalability problems (eg. I'd like to
see Ingo's scheduler put into mainline 2.4 sometime soon, both 2.5 and
our benchmarking teams have kicked the hell out of it, and it stands
up well), but the above list is the things I can think of at the moment
that are specific to 32-bit machines (though some of those would also
help 64 bit).
M.
next prev parent reply other threads:[~2002-05-22 15:45 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-05-22 6:51 2.4.19pre*: IO statistics in /proc/partitions corrupt Jochen Suckfuell
2002-05-22 14:00 ` Have the 2.4 kernel memory management problems on large machines been fixed? M. Edward Borasky
2002-05-22 14:08 ` bert hubert
2002-05-22 14:55 ` Alan Cox
2002-05-22 15:56 ` Martin J. Bligh
2002-05-22 16:23 ` Alan Cox
2002-05-22 21:46 ` Doug Ledford
2002-05-22 14:36 ` William Lee Irwin III
2002-05-22 15:44 ` Martin J. Bligh [this message]
2002-05-22 15:53 ` Martin J. Bligh
2002-05-22 16:07 ` William Lee Irwin III
2002-05-22 16:36 ` Martin J. Bligh
2002-05-22 17:21 ` Andrea Arcangeli
2002-05-22 18:18 ` Martin J. Bligh
2002-05-22 18:02 ` Alan Cox
2002-05-22 18:08 ` Linus Torvalds
2002-05-22 18:30 ` Rik van Riel
2002-05-22 18:40 ` Linus Torvalds
2002-05-22 18:48 ` Martin J. Bligh
2002-05-22 18:34 ` Have the 2.4 kernel memory management problems on large machines Alan Cox
2002-05-22 18:27 ` Linus Torvalds
2002-05-22 20:30 ` Have the 2.4 kernel memory management problems on large machines been fixed? William Lee Irwin III
2002-05-22 21:18 ` Martin J. Bligh
2002-05-22 21:23 ` Linus Torvalds
2002-05-22 22:35 ` Andrea Arcangeli
2002-05-22 22:44 ` Martin J. Bligh
2002-05-28 2:08 ` Wim Coekaerts
2002-05-31 20:39 ` Andrea Arcangeli
2002-05-23 14:16 ` Bill Davidsen
2002-05-23 17:18 ` Linus Torvalds
2002-05-23 19:34 ` Bill Davidsen
2002-05-23 19:46 ` Linus Torvalds
2002-05-22 18:38 ` Martin J. Bligh
2002-05-22 17:50 ` Alan Cox
2002-05-22 17:54 ` J Sloan
2002-05-22 18:22 ` Have the 2.4 kernel memory management problems on large machines Alan Cox
2002-05-22 22:14 ` J Sloan
2002-05-22 18:24 ` Have the 2.4 kernel memory management problems on large machines been fixed? Martin J. Bligh
2002-05-22 22:05 ` Alan Cox
2002-05-22 14:29 Alastair Stevens
[not found] <E17AaR0-0002QM-00@the-village.bc.nu.suse.lists.linux.kernel>
[not found] ` <Pine.LNX.4.33.0205221048570.23621-100000@penguin.transmeta.com.suse.lists.linux.kernel>
2002-05-22 20:23 ` Andi Kleen
2002-05-22 20:58 ` Linus Torvalds
2002-05-23 12:40 ` Mike Jagdis
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='1403412981.1022057064@[10.10.2.3]' \
--to=martin.bligh@us.ibm.com \
--cc=akpm@zip.com.au \
--cc=andrea@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=riel@surriel.com \
--cc=torvalds@transmeta.com \
--cc=wli@holomorphy.com \
--cc=znmeb@aracnet.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
all inboxes | Powered by JetHome®