linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@transmeta.com>
To: "Juan J. Quintela" <quintela@fi.udc.es>
Cc: Rajagopal Ananthanarayanan <ananth@sgi.com>, linux-mm@kvack.org
Subject: Re: A possible winner in pre7-8
Date: Wed, 10 May 2000 08:31:03 -0700 (PDT)	[thread overview]
Message-ID: <Pine.LNX.4.10.10005100817530.1989-100000@penguin.transmeta.com> (raw)
In-Reply-To: <yttvh0nozf7.fsf@vexeta.dc.fi.udc.es>


On 10 May 2000, Juan J. Quintela wrote:
> 
> It begin to kill processes after the 10th iteration.  After that, the
> machine freezes.

Do you have a SMP machine? If so, I think I found this one.

And it's been there for ages.

The bug is that GFP_ATOMIC _really_ must not try to page stuff out,
eventhe stuff that doesn't need IO to be dropped.

Why? Because GFP_ATOMIC can be (and mostly is) called from interrupts, and
even when we don't do IO we _do_ access a number of spinlocks in order to
see whether we can even just drop it.

For example, in order to scan the page tables we take the page_table_lock
("vmlist_access_lock") which is not irq-safe.

So the lockup will occur if you take an interrupt that does an allocation
(usually networking-related) while you hold the page_table_lock (which can
be due to a swapout, for example).

The reason it has been there for long is that usually SMP machines have
enough memory that this condition is really hard to trigger in normal use.
And on UP machines you'd never see the problem (except, possibly, as page
table double-freeing, but the window for that looks extremely small
indeed, much smaller than the double-spinlock window).

		Linus

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux.eu.org/Linux-MM/

  reply	other threads:[~2000-05-10 15:31 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Pine.LNX.4.10.10005082332560.773-100000@penguin.transmeta.com>
2000-05-09  7:50 ` Rajagopal Ananthanarayanan
2000-05-09 17:33   ` Juan J. Quintela
2000-05-10  1:59     ` Roger Larsson
2000-05-10 22:13       ` [plastic bag] " Roger Larsson
2000-05-10 21:23         ` Rik van Riel
2000-05-10  3:29     ` Juan J. Quintela
2000-05-10 15:31       ` Linus Torvalds [this message]
2000-05-10 16:04         ` Juan J. Quintela
2000-05-10 18:11         ` Rik van Riel
2000-05-10 18:21           ` Linus Torvalds

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=Pine.LNX.4.10.10005100817530.1989-100000@penguin.transmeta.com \
    --to=torvalds@transmeta.com \
    --cc=ananth@sgi.com \
    --cc=linux-mm@kvack.org \
    --cc=quintela@fi.udc.es \
    /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