public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrea Arcangeli <andrea@suse.de>
To: Rik van Riel <riel@redhat.com>
Cc: Andrew Morton <akpm@osdl.org>,
	linux-kernel@vger.kernel.org, Robert_Hentosh@Dell.com,
	Con Kolivas <kernel@kolivas.org>
Subject: Re: [PATCH][1/2] adjust dirty threshold for lowmem-only mappings
Date: Sat, 25 Dec 2004 19:36:29 +0100	[thread overview]
Message-ID: <20041225183629.GV13747@dualathlon.random> (raw)
In-Reply-To: <Pine.LNX.4.61.0412251253090.18130@chimarrao.boston.redhat.com>

On Sat, Dec 25, 2004 at 12:59:10PM -0500, Rik van Riel wrote:
> 4) any memory that could be affected by the swap token (process
>    text, data, stack, ...) is allocated with __GFP_HIGHMEM, so
>    that all lives in the highmem zone with 2.5GB free
> 5) since dd is not being paged out at all, and can dirty memory
>    without limit, the VM gets backed into a corner and will
>    trigger an OOM kill - even though most of lowmem is simply
>    dirty page cache

This shouldn't happen of course, and it's a bit hard to see how can it
work fine for 23 hours and break at the 24th hour since it's quite a
repetitive algorithm. (sure it could be a race or the algorithm being
very fragile, but I can't reproduce problems here)

Plus doing cp /dev/zero . should be even worse since it also fills up
the highmem.

Are you sure cron isn't spawning something big?

Anyway my point is that swap-token is _proven_ to trigger suprious oom
kills, so if you could just reproduce once with Con's patch applied and
default sysctl value, then you would provide the proof it's unrelated.

I agree with your reasoning, I think you're right, but I'd like to be
sure we're not missing something. There are definitely other reports
where the ignore-token patch wasn't enough and Con's patch fixed it.

I also recommend you to keep vmstat in the background, in my experience
swap token was filling all swap with freeable swapcache (but it wasn't
freeable due the referenced ++ that swap-token does), and then the oom
killer was invoked despite all that freeable swapcache.

So on a computer that had plenty of lowmem and highmem free, in seconds
it would run out of memory with all swap allocated.

I agree dd shouldn't be enough, but the 1 day variable may be just some
big cron task that we didn't put into the equation.

So I still would like to see a `vmstat 1` before/after the killing, and
to hear the confirmation that Con's patch doesn't help.

The only thing I can imagine being wrong with `cp /dev/zero /dev/sd?`
while working fine on `cp /dev/zero .`, are the write throttling levels
that might be taking highmem into account while they really cannot take
highmem into account, I mean nr_free_buffer_pages must be used by the
write throttling and not nr_free_pages, but I'd be surprised if this
wasn't correct. You may want to check this bit just in case. If this is
correct then doing cp /dev/zero . should fail too, no? I for sure can't
reproduce here, and by your same arguments about the highmem levels, it
shouldn't matter how much ram I have (I've 1G). The less ram I have, the
worse it should behave.

Without more data and without being able to reproduce I can't be more
helpful than this.

Thanks.

  reply	other threads:[~2004-12-25 18:37 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-20 15:15 [PATCH][1/2] adjust dirty threshold for lowmem-only mappings Rik van Riel
2004-12-20 15:23 ` Rik van Riel
2004-12-20 20:54 ` Andrew Morton
2004-12-20 21:27   ` Rik van Riel
2004-12-23 19:21   ` Rik van Riel
2004-12-24 16:01     ` Andrea Arcangeli
2004-12-24 16:22       ` Rik van Riel
2004-12-24 16:40         ` Andrea Arcangeli
2004-12-24 22:12           ` Rik van Riel
2004-12-25  2:07             ` Andrea Arcangeli
2004-12-25 17:59               ` Rik van Riel
2004-12-25 18:36                 ` Andrea Arcangeli [this message]
2004-12-25 19:07                 ` William Lee Irwin III
2004-12-25 20:03                   ` Andrea Arcangeli
2004-12-26  3:07                     ` William Lee Irwin III
2005-01-02 16:10                       ` Andrea Arcangeli
2005-01-02 16:36                         ` William Lee Irwin III
2005-01-02 16:53                         ` Rik van Riel
2005-01-02 17:21                           ` Andrea Arcangeli
2004-12-25 22:03                   ` Nikita Danilov
2004-12-26  3:16                     ` William Lee Irwin III
2005-01-02 15:11                   ` Jens Axboe
2005-01-02 16:18                     ` Andrea Arcangeli
2005-01-02 20:03                     ` Andrew Morton
2005-01-02 20:25                       ` William Lee Irwin III
  -- strict thread matches above, loose matches on Subject: below --
2004-12-20 16:46 Robert_Hentosh
2004-12-20 17:56 ` Sami Farin

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=20041225183629.GV13747@dualathlon.random \
    --to=andrea@suse.de \
    --cc=Robert_Hentosh@Dell.com \
    --cc=akpm@osdl.org \
    --cc=kernel@kolivas.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=riel@redhat.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