public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andreas Franck <afranck@gmx.de>
To: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Prevent OOM from killing init
Date: Sat, 24 Mar 2001 03:30:29 +0100	[thread overview]
Message-ID: <01032403302905.05124@dg1kfa> (raw)

Hi together,

seems like a hot discussion going on, but I couldn't resist and would like to
throw in my $0.02.

Besides misunderstandings and general displeasure, some very interesting
facts have shown up in the discussion (oh, yeah), which I'd like to know more
about, and just extend them with a bit of my latest experience regarding
memory usage.

First one is about buffer/inode cache. What I expect as a medium-skilled
system hacker would be: Before giving up with an OOM-whatever,

a) all non-dirty buffers should be freed, possibly giving tons of memory
b) all dirty buffers should be flushed and freed, alas

I'm not sure if both is tried ATM, but I think enough experts are here to
answer my questions :)

What I saw lately was some general system sluggishness after copying very big
files (ripping a CD image to disk) - it seems the system has paged out most
of its processes (including the calling bash shell) in favor of the copying
task, just for buffers! Up to which degree is this reasonable? It seems to
slow down the system when using swap, so for this task I better had
deactivated it. Not what one "intuitively" expects.

So, what is the second important point? The current system cannot properly
distinguish between memory an application "really" needs and memory an
application "eventually" needs (as internal caches, ...).

A possible solution could be the implementation of something like SIGDANGER,
which would be sent to an application in case of memory overload, so
it should try to free a bit memory if it can. Surely applications would have
to be modified to use that information. How about the C library, does it
maintain any big buffers, for I/O or so? I don't know, changes there could
surely be passed on transparently. Ok, ok, it's the MacOS way of thinking, so
the other possibility. This problems are intimately related to memory
overcommitting, or not doing so, so what might be fatal in overcommitting?

One problem arises if an application gets a huge part of overcommitted memory
and then tries to use it, which spontaneously fails - just because the memory
was committed somewhere else, to the 999 other apps which are already
 running.

The flaw there is that at some time, you can guarantee that the overcommit
would fail, if the memory was really used. At this point, the application
could be halted (so that it does not get the chance to make use of the
overcommit promise), until some more memory is available again - either by
paging, or by waiting for other jobs to terminate. This could lead to
starvation, but it potentially could let the system survive.

A further idea would be to use overcommitted memory only for buffers and
caches, this was already mentioned before. In any situation "near" an OOM,
further memory pressure should be avoided - for example, by letting malloc()
fail. This might also hurt existing processes, so some heuristics could
decide - a malloc() from a freshly started process should fail regardlessly
of its size, while older processes might get some more tolerance, because the
system might trust their behaviour a bit more.

So far from me, this was just a collection of some more or less unrelated
thoughts, which I'd like to know a bit more about, or hear from experts why
all of this is b*llshit (or: already done(TM)!)

Greetings,
Andreas

             reply	other threads:[~2001-03-24  2:31 UTC|newest]

Thread overview: 153+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-03-24  2:30 Andreas Franck [this message]
     [not found] <Pine.LNX.4.30.0103251549100.13864-100000@fs131-224.f-secure.com>
     [not found] ` <l03130315b6e242006a4b@[192.168.239.101]>
2001-03-25 15:47   ` [PATCH] Prevent OOM from killing init Jonathan Morton
  -- strict thread matches above, loose matches on Subject: below --
2001-03-24 23:41 Benoit Garnier
2001-03-25  5:45 ` Stephen Satchell
2001-03-25  6:58   ` Stephen Clouse
2001-03-25 14:37   ` Martin Dalecki
2001-03-25 14:32 ` Martin Dalecki
2001-03-24 10:18 Andries.Brouwer
2001-03-24  1:38 Jonathan Morton
2001-03-24  1:11 Andries.Brouwer
2001-03-23 23:15 Andries.Brouwer
2001-03-23 23:17 ` Martin Dalecki
2001-03-24  0:13 ` Jonathan Morton
2001-03-24  6:58   ` Rik van Riel
2001-03-24 12:38   ` Jonathan Morton
2001-03-24 13:12   ` Jonathan Morton
2001-03-24  1:59 ` Paul Jakma
2001-03-23 19:33 Stephen Satchell
2001-03-23 18:29 Andries.Brouwer
2001-03-23 18:38 ` Alan Cox
2001-03-24  0:46   ` Tim Wright
2001-03-24 16:48   ` Jesse Pollard
2001-03-25 16:12     ` Szabolcs Szakacsits
2001-03-25 16:39     ` Jonathan Morton
2001-03-23 18:43 ` nick
2001-03-23 19:01   ` Martin Dalecki
2001-03-23 19:23     ` nick
2001-03-23 22:12     ` Alan Cox
2001-03-23 23:23       ` Stephen E. Clark
2001-03-24 10:40         ` Gérard Roudier
2001-03-23 21:14 ` Jonathan Morton
2001-03-25 14:56   ` Marco Colombo
2001-03-23  9:48 Only 10 MB/sec with via 82c686b - FIXED Alan Cox
2001-03-23 17:00 ` [PATCH] Prevent OOM from killing init SodaPop
2001-03-23 18:42   ` Martin Dalecki
2001-03-23 20:25     ` SodaPop
2001-03-23 20:33       ` Martin Dalecki
2001-03-23 19:19   ` Jonathan Morton
2001-03-23  9:28 Heusden, Folkert van
2001-03-23  0:09 Mikael Pettersson
2001-03-23  0:27 ` Andrew Morton
2001-03-23 12:29   ` Mikael Pettersson
2001-03-23 16:24 ` Horst von Brand
2001-03-23 16:49   ` Guest section DW
2001-03-23 17:04     ` Alan Cox
2001-03-22 23:35 Mikael Pettersson
2001-03-22 23:43 ` Alan Cox
2001-03-27  7:58   ` Helge Hafting
     [not found] <4605B269DB001E4299157DD1569079D2809930@EXCHANGE03.plaza.ds.adp.com>
2001-03-22 16:29 ` Rik van Riel
2001-03-22 18:32   ` Christian Bodmer
2001-03-23 15:08     ` Horst von Brand
2001-03-24  7:48       ` Doug Ledford
2001-03-24 10:21         ` Mike Galbraith
2001-03-24 18:19           ` Doug Ledford
2001-03-24 22:47             ` Mike Galbraith
2001-03-24 23:35             ` Jonathan Morton
2001-03-25 18:35               ` Jonathan Morton
2001-03-26  4:40                 ` Horst von Brand
2001-03-26  8:36                 ` Mike Galbraith
2001-03-26 10:01                 ` Jonathan Morton
2001-03-26 14:48                   ` Rik van Riel
2001-03-25 19:07               ` Mike Galbraith
2001-03-24 20:04           ` Jonathan Morton
2001-03-24 20:59           ` Jonathan Morton
2001-03-24 22:11             ` Rik van Riel
2001-03-24 23:36             ` Jonathan Morton
2001-03-25 14:30             ` Martin Dalecki
2001-03-25 14:13           ` Martin Dalecki
2001-03-24 12:42         ` Jonathan Morton
2001-03-24 15:06           ` Mike Galbraith
2001-03-25 14:10         ` Martin Dalecki
2001-03-22 11:08 Heusden, Folkert van
2001-03-21 23:41 Leif Sawyer
2001-03-22  0:32 ` Kevin Buhr
2001-03-21 22:54 Patrick O'Rourke
2001-03-21 23:11 ` Eli Carter
2001-03-21 23:40   ` Patrick O'Rourke
2001-03-21 23:48 ` Rik van Riel
2001-03-22  8:14   ` Eric W. Biederman
2001-03-22  9:24     ` Rik van Riel
2001-03-22 19:29     ` Philipp Rumpf
2001-03-22 11:47   ` Guest section DW
2001-03-22 15:01     ` Rik van Riel
2001-03-22 19:04       ` Guest section DW
2001-03-22 16:41     ` Eric W. Biederman
2001-03-22 20:28     ` Stephen Clouse
2001-03-22 21:01       ` Ingo Oeser
2001-03-22 21:23       ` Alan Cox
2001-03-22 22:00         ` Guest section DW
2001-03-22 22:12           ` Ed Tomlinson
2001-03-22 22:52           ` Alan Cox
2001-03-22 23:27             ` Guest section DW
2001-03-22 23:37               ` Rik van Riel
2001-03-26 19:04                 ` James Antill
2001-03-26 20:05                   ` Rik van Riel
2001-03-22 23:40               ` Alan Cox
2001-03-23 20:09                 ` Szabolcs Szakacsits
2001-03-23 22:21                   ` Alan Cox
2001-03-23 22:37                     ` Szabolcs Szakacsits
2001-03-23 19:57           ` Szabolcs Szakacsits
2001-03-22 22:10         ` Doug Ledford
2001-03-22 22:53           ` Alan Cox
2001-03-22 23:30             ` Doug Ledford
2001-03-22 23:40               ` Alan Cox
2001-03-22 23:43         ` Stephen Clouse
2001-03-23 19:26         ` Szabolcs Szakacsits
2001-03-23 20:41           ` Paul Jakma
2001-03-23 21:58             ` george anzinger
2001-03-24  5:55               ` Rik van Riel
2001-03-23 22:18             ` Szabolcs Szakacsits
2001-03-24  2:08               ` Paul Jakma
2001-03-23  1:31       ` Michael Peddemors
2001-03-23  7:04         ` Rik van Riel
2001-03-23 11:28           ` Guest section DW
2001-03-23 14:50             ` Eric W. Biederman
2001-03-23 17:21               ` Guest section DW
2001-03-23 20:18                 ` Paul Jakma
2001-03-24 20:19                   ` Jesse Pollard
2001-03-23 23:48                 ` Eric W. Biederman
2001-03-23 21:11             ` José Luis Domingo López
2001-03-27 15:05       ` Anthony de Boer - USEnet
2002-03-23  0:33       ` Martin Dalecki
2001-03-22 23:53         ` Rik van Riel
2002-03-23  1:21           ` Martin Dalecki
2001-03-23  0:20         ` Stephen Clouse
2002-03-23  1:30           ` Martin Dalecki
2001-03-23  1:37             ` Rik van Riel
2001-03-23 10:48               ` Martin Dalecki
2001-03-23 14:56                 ` Rik van Riel
2001-03-23 16:43                   ` Guest section DW
2001-03-24  5:57                     ` Rik van Riel
2001-03-25 16:35                       ` Guest section DW
2001-03-23 20:20                   ` Tom Diehl
2001-03-23 23:56                     ` Tim Wright
2001-03-24  0:21                       ` Tom Diehl
2001-03-23 17:26     ` James A. Sutherland
2001-03-23 17:32       ` Alan Cox
2001-03-23 18:58         ` Martin Dalecki
2001-03-23 19:45         ` Jonathan Morton
2001-03-23 23:26           ` Eric W. Biederman
2001-03-25 15:30         ` Martin Dalecki
2001-03-25 20:47         ` Stephen Satchell
2001-03-24  0:03       ` Guest section DW
2001-03-24  7:52       ` Doug Ledford
2001-03-25  0:32       ` Kurt Garloff
2001-03-25 15:02         ` Sandy Harris
2001-03-25 18:07         ` Guest section DW
2001-03-22 14:53   ` Patrick O'Rourke
2001-03-22 19:24   ` Philipp Rumpf
2001-03-22 22:20   ` James A. Sutherland
2001-03-23 17:31   ` Szabolcs Szakacsits
2001-03-24  5:54     ` Rik van Riel
2001-03-24  6:55       ` Juha Saarinen
2001-03-27  8:31       ` Roger Gammans

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=01032403302905.05124@dg1kfa \
    --to=afranck@gmx.de \
    --cc=linux-kernel@vger.kernel.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