All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@osdl.org>
To: William Lee Irwin III <wli@holomorphy.com>
Cc: andrea@suse.de, nickpiggin@yahoo.com.au, tiwai@suse.de,
	ak@suse.de, ak@muc.de, tripperda@nvidia.com, discuss@x86-64.org,
	linux-kernel@vger.kernel.org
Subject: Re: [discuss] Re: 32-bit dma allocations on 64-bit platforms
Date: Thu, 24 Jun 2004 16:09:45 -0700	[thread overview]
Message-ID: <20040624160945.69185c46.akpm@osdl.org> (raw)
In-Reply-To: <20040624225121.GS21066@holomorphy.com>

William Lee Irwin III <wli@holomorphy.com> wrote:
>
> On Fri, Jun 25, 2004 at 12:45:29AM +0200, Andrea Arcangeli wrote:
> > Luckily this problem doesn't fall in this scenario and it's trivial to
> > reproduce if you've >= 2G of ram. I still have here the testcase google
> > sent me years ago when this problem seen the light during 2.4.1x. They
> > used mlock, but it's even simpler to reproduce it with a single malloc +
> > bzero (note: no mlock). The few mbytes of lowmem left won't last long if
> > you load some big app after that.
> 
> Well, there are magic numbers here we need to explain to get a testcase
> runnable on more machines than just x86 boxen with exactly 2GB RAM.
> Where do the 2GB and 1GB come from? Is it that 1GB is the size of the
> upper zone?
> 

A testcase would be, on a 2G box:

a) free up as much memory as you can

b) write a 1.2G file to fill highmem with pagecache

c) malloc(800M), bzero(), sleep

d) swapoff -a

You now have a box which has almost all of lowmem pinned in anonymous
memory.  It'll limp along and go oom fairly easily.


Another testcase would be:

a) free up as much memory as you can

b) write a 1.2G file to fill highmem with pagecache

c) malloc(800M), mlock it

You now have most of lowmem mlocked.


In both situations the machine is really sick.  Probably the most risky
scenario is a swapless machine in which lots of lowmem is allocated to
anonymous memory.


It should be the case that increasing lower_zone_peotection will fix all
the above.  If not, it needs fixing.

So we're down the question "what should we default to at bootup".  I find
it hard to justify defaulting to a mode where we're super-defensive against
this sort of thing, simply because nobody seems to be hitting the problems.

Distributors can, if the must, bump lower_zone_protection in initscripts,
and it's presumably pretty simple to write a boot script which parses
/proc/meminfo's MemTotal and SwapTotal lines, producing an appropriate
lower_zone_protection setting.


  reply	other threads:[~2004-06-24 23:07 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <m3acyu6pwd.fsf@averell.firstfloor.org>
     [not found] ` <20040623213643.GB32456@hygelac>
2004-06-23 23:46   ` 32-bit dma allocations on 64-bit platforms Andi Kleen
2004-06-24 11:13     ` Takashi Iwai
2004-06-24 11:29       ` [discuss] " Andi Kleen
2004-06-24 14:36         ` Takashi Iwai
2004-06-24 14:42           ` Andi Kleen
2004-06-24 14:58             ` Takashi Iwai
2004-06-24 15:29               ` Andrea Arcangeli
2004-06-24 15:48                 ` Nick Piggin
2004-06-24 16:52                   ` Andrea Arcangeli
2004-06-24 16:56                     ` William Lee Irwin III
2004-06-24 17:32                       ` Andrea Arcangeli
2004-06-24 17:38                         ` William Lee Irwin III
2004-06-24 18:02                           ` Andrea Arcangeli
2004-06-24 18:13                             ` William Lee Irwin III
2004-06-24 18:27                               ` Andrea Arcangeli
2004-06-24 18:50                                 ` William Lee Irwin III
2004-06-24 21:54                       ` Andrew Morton
2004-06-24 22:08                         ` William Lee Irwin III
2004-06-24 22:45                           ` Andrea Arcangeli
2004-06-24 22:51                             ` William Lee Irwin III
2004-06-24 23:09                               ` Andrew Morton [this message]
2004-06-24 23:15                                 ` William Lee Irwin III
2004-06-25  6:16                                   ` William Lee Irwin III
2004-06-25  2:39                                 ` Andrea Arcangeli
2004-06-25  2:47                                   ` Andrew Morton
2004-06-25  3:19                                     ` Andrea Arcangeli
2004-06-24 22:11                         ` Andrew Morton
2004-06-24 23:09                           ` Andrea Arcangeli
2004-06-25  1:17                             ` Nick Piggin
2004-06-25  3:11                               ` Andrea Arcangeli
2004-06-24 22:21                         ` Andrea Arcangeli
2004-06-24 22:36                           ` Andrew Morton
2004-06-24 23:15                             ` Andrea Arcangeli
2004-06-24 22:37                           ` William Lee Irwin III
2004-06-24 22:40                             ` William Lee Irwin III
2004-06-24 23:21                             ` Andrea Arcangeli
2004-06-24 23:45                               ` William Lee Irwin III
2004-06-24 17:39                   ` Andrea Arcangeli
2004-06-24 17:53                     ` William Lee Irwin III
2004-06-24 18:07                       ` Andrea Arcangeli
2004-06-24 18:29                         ` William Lee Irwin III
2004-06-24 16:04                 ` Takashi Iwai
2004-06-24 17:16                   ` Andrea Arcangeli
2004-06-24 18:33                     ` Takashi Iwai
2004-06-24 18:44                       ` Andrea Arcangeli
2004-06-25 15:50                         ` Takashi Iwai
2004-06-25 17:30                           ` Andrea Arcangeli
2004-06-25 17:39                             ` Takashi Iwai
2004-06-25 17:45                               ` Andrea Arcangeli
2004-06-24 14:45       ` Terence Ripperda
2004-06-24 15:41         ` Andrea Arcangeli
2004-06-24 15:44     ` Terence Ripperda
2004-06-24 16:15       ` [discuss] " Andi Kleen
2004-06-24 17:22         ` Andrea Arcangeli
2004-06-24 22:28         ` Terence Ripperda
2004-06-24 18:51       ` Andi Kleen
2004-06-26  4:58         ` David Mosberger
2004-06-24 13:48 Jesse Barnes
2004-06-24 14:39 ` Terence Ripperda
2004-06-24 15:01   ` [discuss] " Andi Kleen

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=20040624160945.69185c46.akpm@osdl.org \
    --to=akpm@osdl.org \
    --cc=ak@muc.de \
    --cc=ak@suse.de \
    --cc=andrea@suse.de \
    --cc=discuss@x86-64.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nickpiggin@yahoo.com.au \
    --cc=tiwai@suse.de \
    --cc=tripperda@nvidia.com \
    --cc=wli@holomorphy.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.