mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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.

  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®