linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@transmeta.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Rik van Riel <riel@conectiva.com.br>,
	Andrea Arcangeli <andrea@suse.de>,
	MM mailing list <linux-mm@kvack.org>,
	linux-kernel@vger.rutgers.edu
Subject: Re: [patch] balanced highmem subsystem under pre7-9
Date: Fri, 12 May 2000 12:06:13 -0700 (PDT)	[thread overview]
Message-ID: <Pine.LNX.4.10.10005121200590.4959-100000@penguin.transmeta.com> (raw)
In-Reply-To: <Pine.LNX.4.10.10005122044130.6188-200000@elte.hu>


On Fri, 12 May 2000, Ingo Molnar wrote:
> 
> i initially tested pre7-9 and it showed bad behavior: high kswapd activity
> trying to balance highmem, while the pagecache is primarily filled from
> the highmem. I dont think this can be fixed without 'silencing'
> ZONE_HIGHMEM's balancing activities: the pagecache allocates from highmem
> so it puts direct pressure on the highmem zone.

If this is true, then that is a bug in the allocator.

I tried very hard (but must obviously have failed), to make the allocator
_always_ do the right thing - never allocating from a zone that causes
memory balancing if there is another zone that is preferable. 

> This had two effects: wasted CPU time, but it also limited the
> page-cache's maximum size to the size of highmem. I'll try the final
> pre7-2.3.99 kernel as well in a minute to make sure. (i think the bad
> behavior is still be there, judging from the differences between pre9 and
> the final patch.)

Please fix the memory allocator instead. It should really go to the next
zone instead of allocating more from the highmem zone.

Actually, I think the real bug is kswapd - I thought the "for (;;)" loop
was a good idea, but I've since actually thought about it more, and in
real life we really just want to go to sleep when we need to re-schedule,
because if there is any _real_ memory pressure people _will_ wake us up
anyway. So before you touch the memory allocator logic, you might want to
change the

	if (tsk->need_resched)
		schedule();

to a 

	if (tsk->need_resched)
		goto sleep;

(and add a "sleep:" thing to inside the if-statement that makes us go to
sleep). That way, if we end up scheduling away from kswapd, we won't waste
time scheduling back unless we really should.

But do check out __alloc_pages() too, maybe you see some obvious bug of
mine that I just never thought about.

		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-12 19:06 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-05-08 17:21 [PATCH] Recent VM fiasco - fixed Zlatko Calusic
2000-05-08 17:43 ` Rik van Riel
2000-05-08 18:16   ` Zlatko Calusic
2000-05-08 18:20     ` Linus Torvalds
2000-05-08 18:46     ` Rik van Riel
2000-05-08 18:53       ` Zlatko Calusic
2000-05-08 19:04         ` Rik van Riel
2000-05-09  7:56   ` Daniel Stone
2000-05-09  8:25     ` Christoph Rohland
2000-05-09 15:44       ` Linus Torvalds
2000-05-09 16:12         ` Simon Kirby
2000-05-09 17:42         ` Christoph Rohland
2000-05-09 19:50           ` Linus Torvalds
2000-05-10 11:25             ` Christoph Rohland
2000-05-10 11:50               ` Zlatko Calusic
2000-05-11 23:40                 ` Mark Hahn
2000-05-10  4:05         ` James H. Cloos Jr.
2000-05-10  7:29           ` James H. Cloos Jr.
2000-05-11  0:16             ` Linus Torvalds
2000-05-11  0:32               ` Linus Torvalds
2000-05-11 16:36                 ` [PATCH] Recent VM fiasco - fixed (pre7-9) Rajagopal Ananthanarayanan
2000-05-11  1:04               ` [PATCH] Recent VM fiasco - fixed Juan J. Quintela
2000-05-11  1:53                 ` Simon Kirby
2000-05-11  7:23                   ` Linus Torvalds
2000-05-11 14:17                     ` Simon Kirby
2000-05-11 23:38                       ` Simon Kirby
2000-05-12  0:09                         ` Linus Torvalds
2000-05-12  2:51                           ` [RFC][PATCH] shrink_mmap avoid list_del (Was: Re: [PATCH] Recent VM fiasco - fixed) Roger Larsson
2000-05-11 11:15                   ` [PATCH] Recent VM fiasco - fixed Rik van Riel
2000-05-11  5:10                 ` Linus Torvalds
2000-05-11 10:09                   ` James H. Cloos Jr.
2000-05-11 17:25                   ` Juan J. Quintela
2000-05-11 23:25                   ` [patch] balanced highmem subsystem under pre7-9 Ingo Molnar
2000-05-11 23:46                     ` Linus Torvalds
2000-05-12  0:08                       ` Ingo Molnar
2000-05-12  0:15                         ` Ingo Molnar
2000-05-12  9:02                     ` Christoph Rohland
2000-05-12  9:56                       ` Ingo Molnar
2000-05-12 11:49                         ` Christoph Rohland
2000-05-12 16:12                       ` Linus Torvalds
2000-05-12 10:57                     ` Andrea Arcangeli
2000-05-12 12:11                       ` Ingo Molnar
2000-05-12 12:57                         ` Andrea Arcangeli
2000-05-12 13:20                           ` Rik van Riel
2000-05-12 16:40                             ` Ingo Molnar
2000-05-12 17:15                               ` Rik van Riel
2000-05-12 18:15                               ` Linus Torvalds
2000-05-12 18:53                                 ` Ingo Molnar
2000-05-12 19:06                                   ` Linus Torvalds [this message]
2000-05-12 19:36                                     ` Ingo Molnar
2000-05-12 19:40                                     ` Ingo Molnar
2000-05-12 19:54                                     ` Ingo Molnar
2000-05-12 22:48                                       ` Rik van Riel
2000-05-13 11:57                                         ` Stephen C. Tweedie
2000-05-13 12:03                                           ` Rik van Riel
2000-05-13 12:14                                             ` Ingo Molnar
2000-05-13 14:23                                               ` Ingo Molnar
2000-05-19  1:58                               ` Andrea Arcangeli
2000-05-19 15:03                                 ` Rik van Riel
2000-05-19 16:08                                   ` Andrea Arcangeli
2000-05-19 17:05                                     ` Rik van Riel
2000-05-19 22:28                                     ` Linus Torvalds
2000-05-11 11:12               ` [PATCH] Recent VM fiasco - fixed Christoph Rohland
2000-05-11 17:38               ` Steve Dodd
2000-05-09 10:21     ` Rik van Riel

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.10005121200590.4959-100000@penguin.transmeta.com \
    --to=torvalds@transmeta.com \
    --cc=andrea@suse.de \
    --cc=linux-kernel@vger.rutgers.edu \
    --cc=linux-mm@kvack.org \
    --cc=mingo@elte.hu \
    --cc=riel@conectiva.com.br \
    /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