public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Andrew Morton <andrewm@uow.edu.au>
Cc: "Jeffrey W. Baker" <jwbaker@acm.org>,
	Derek Glidden <dglidden@illusionary.com>,
	linux-kernel@vger.kernel.org
Subject: Re: Break 2.4 VM in five easy steps
Date: 06 Jun 2001 07:32:34 -0600	[thread overview]
Message-ID: <m14rtt7mz1.fsf@frodo.biederman.org> (raw)
In-Reply-To: <3B1D5ADE.7FA50CD0@illusionary.com> <Pine.LNX.4.33.0106051634540.8311-100000@heat.gghcwest.com> <3B1D927E.1B2EBE76@uow.edu.au>
In-Reply-To: <3B1D927E.1B2EBE76@uow.edu.au>

Andrew Morton <andrewm@uow.edu.au> writes:

> "Jeffrey W. Baker" wrote:
> > 
> > Because the 2.4 VM is so broken, and
> > because my machines are frequently deeply swapped,
> 
> The swapoff algorithms in 2.2 and 2.4 are basically identical.
> The problem *appears* worse in 2.4 because it uses lots
> more swap.

And 2.4 does delayed swap deallocation.  We don't appear to optimize
the case where a page is only used by the swap cache.  That should
be able to save some cpu overhead if nothing else.

And I do know that in the early 2.2 timeframe, swapoff was used
to generate an artifically high VM load, for testing the VM.  It looks
like that testing procedure has been abandoned :)

> > they can sometimes take over 30 minutes to shutdown.
> 
> Yes. The sys_swapoff() system call can take many minutes
> of CPU time.  It basically does:
> 
> 	for (each page in swap device) {
> 		for (each process) {
> 			for (each page used by this process)
> 				stuff
> 
> It's interesting that you've found a case where this
> actually has an operational impact.

Agreed.
 
> Haven't looked at it closely, but I think the algorithm
> could become something like:
> 
> 	for (each process) {
> 		for (each page in this process) {
> 			if (page is on target swap device)
> 				get_it_off()
> 		}
> 	}
> 
> 	for (each page in swap device) {
> 		if (it is busy)
> 			complain()
> 	}

You would need to handle the shared memory case as well.
But otherwise this looks sound.  I would suggest going
through page->address_space->i_mmap_shared to find all of the
potential mappings but the swapper address space is used by all
processes that have pages in swap.

> That's 10^4 to 10^6 times faster.

It looks like it could be.  The bottleneck should be diskio, if it
is not we have a noticeable inefficient algorithm.

Eric

  parent reply	other threads:[~2001-06-06 13:36 UTC|newest]

Thread overview: 142+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-06-05 22:19 Break 2.4 VM in five easy steps Derek Glidden
2001-06-05 23:38 ` Jeffrey W. Baker
2001-06-06  1:42   ` Russell Leighton
2001-06-06  7:14     ` Sean Hunter
2001-06-06  7:47     ` Jonathan Morton
2001-06-06  2:16   ` Andrew Morton
2001-06-06  3:19     ` Derek Glidden
2001-06-06  8:19       ` Xavier Bestel
2001-06-06  8:54         ` Sean Hunter
2001-06-06  9:16           ` Xavier Bestel
2001-06-06  9:25             ` Sean Hunter
2001-06-06 10:04             ` Jonathan Morton
2001-06-06  9:57           ` Dr S.M. Huen
2001-06-06 10:06             ` DBs (ML)
2001-06-06 10:08             ` Vivek Dasmohapatra
2001-06-06 10:19               ` Lauri Tischler
2001-06-06 10:22             ` Sean Hunter
2001-06-06 10:48               ` Alexander Viro
2001-06-06 16:58                 ` dean gaudet
2001-06-06 17:10                 ` Remi Turk
2001-06-06 22:44                 ` Kai Henningsen
2001-06-09  7:17               ` Rik van Riel
2001-06-06 16:47             ` dean gaudet
2001-06-06 17:17             ` Kurt Roeckx
2001-06-06 18:35               ` Dr S.M. Huen
2001-06-06 18:40                 ` Mark Salisbury
2001-06-06 19:11             ` android
2001-06-07  0:27               ` Mike A. Harris
2001-06-07  0:20             ` Mike A. Harris
2001-06-09  8:16               ` Rik van Riel
2001-06-09  8:57                 ` Mike A. Harris
2001-06-07 21:31             ` Shane Nay
2001-06-07 20:00               ` Marcelo Tosatti
2001-06-07 21:55                 ` Shane Nay
2001-06-07 20:29                   ` Marcelo Tosatti
2001-06-07 23:29                     ` VM Report was:Re: " Shane Nay
2001-06-08  1:18                     ` Jonathan Morton
2001-06-08 12:50                       ` Mike Galbraith
2001-06-08 14:19                         ` Tobias Ringstrom
2001-06-08 15:51                           ` John Stoffel
2001-06-08 17:01                             ` Mike Galbraith
2001-06-08 17:43                               ` John Stoffel
2001-06-08 17:35                                 ` Marcelo Tosatti
2001-06-08 20:58                                   ` John Stoffel
2001-06-08 20:04                                     ` Marcelo Tosatti
2001-06-08 23:44                                     ` Jonathan Morton
2001-06-09  2:36                                       ` Andrew Morton
2001-06-09  6:33                                         ` Mark Hahn
2001-06-09  3:43                                       ` Mike Galbraith
2001-06-09  4:05                                       ` Jonathan Morton
2001-06-09  5:09                                         ` Mike Galbraith
2001-06-09  5:07                                   ` Mike Galbraith
2001-06-08 18:30                                 ` Mike Galbraith
2001-06-09 12:31                                   ` Zlatko Calusic
2001-06-09  3:34                               ` Rik van Riel
2001-06-08 16:51                           ` Mike Galbraith
2001-06-08 19:09                             ` Tobias Ringstrom
2001-06-09  4:36                               ` Mike Galbraith
2001-06-06 11:16           ` Daniel Phillips
2001-06-06 15:28             ` Richard Gooch
2001-06-06 15:42               ` Christian Bornträger
2001-06-06 15:57                 ` Requirement: swap = RAM x 2.5 ?? Jeff Garzik
2001-06-06 16:12                   ` Richard Gooch
2001-06-06 16:15                     ` Jeff Garzik
2001-06-06 16:19                       ` Richard Gooch
2001-06-06 16:53                         ` Mike Galbraith
2001-06-06 17:05                     ` Greg Hennessy
2001-06-06 18:42                   ` Eric W. Biederman
2001-06-07  1:29                     ` Jan Harkes
2001-06-06 17:14               ` Break 2.4 VM in five easy steps Ben Greear
2001-06-06 12:07           ` Jonathan Morton
2001-06-06 13:58           ` Gerhard Mack
2001-06-08  4:56             ` C. Martins
2001-06-06 14:41         ` Derek Glidden
2001-06-06 20:29         ` José Luis Domingo López
2001-06-06 14:16       ` Disconnect
     [not found]       ` <3B1DEAC7.43DEFA1C@idb.hist.no>
2001-06-06 14:51         ` Derek Glidden
2001-06-06 21:34           ` Alan Cox
2001-06-09  8:07             ` Rik van Riel
2001-06-07  7:23           ` Helge Hafting
2001-06-07 16:56             ` Eric W. Biederman
2001-06-07 20:24             ` José Luis Domingo López
2001-06-06  4:03     ` Jeffrey W. Baker
2001-06-06 13:32     ` Eric W. Biederman [this message]
2001-06-06 14:41     ` Marc Heckmann
2001-06-06 14:51     ` Hugh Dickins
2001-06-06 13:08   ` Eric W. Biederman
2001-06-06 16:48     ` Jeffrey W. Baker
     [not found] ` <m2lmn61ceb.fsf@sympatico.ca>
2001-06-06 14:37   ` Derek Glidden
2001-06-07  0:34     ` Mike A. Harris
2001-06-07  3:13       ` Miles Lane
2001-06-07 15:49         ` Derek Glidden
2001-06-07 19:06           ` Miles Lane
2001-06-09  5:57         ` Mike A. Harris
2001-06-06 18:59 ` Mike Galbraith
2001-06-06 19:39   ` Derek Glidden
2001-06-06 20:47 ` Linus Torvalds
2001-06-07  7:42   ` Eric W. Biederman
2001-06-07  8:11     ` Linus Torvalds
2001-06-07  8:54       ` Eric W. Biederman
2001-06-06 21:39 ` android
2001-06-06 22:08 ` Jonathan Morton
2001-06-06 22:27 ` android
2001-06-06 22:33   ` Antoine
2001-06-06 22:38   ` Robert Love
2001-06-06 22:40 ` Jonathan Morton
  -- strict thread matches above, loose matches on Subject: below --
2001-06-06 15:31 Derek Glidden
2001-06-06 15:46 ` John Alvord
2001-06-06 15:58   ` Derek Glidden
2001-06-06 18:27     ` Eric W. Biederman
2001-06-06 18:47       ` Derek Glidden
2001-06-06 18:52         ` Eric W. Biederman
2001-06-06 19:06           ` Mike Galbraith
2001-06-06 19:28             ` Eric W. Biederman
2001-06-07  4:32               ` Mike Galbraith
2001-06-07  6:38                 ` Eric W. Biederman
2001-06-07  7:28                   ` Mike Galbraith
2001-06-07  7:59                     ` Eric W. Biederman
2001-06-07  8:15                       ` Mike Galbraith
2001-06-07 17:10                 ` Marcelo Tosatti
2001-06-06 19:28           ` Derek Glidden
2001-06-09  7:55           ` Rik van Riel
2001-06-06 20:43       ` Daniel Phillips
2001-06-06 21:57       ` LA Walsh
2001-06-07  6:35         ` Eric W. Biederman
2001-06-07 15:25           ` LA Walsh
2001-06-07 16:42             ` Eric W. Biederman
2001-06-07 20:47               ` LA Walsh
2001-06-08 19:38                 ` Pavel Machek
2001-06-09  7:34     ` Rik van Riel
2001-06-06 21:30 ` Alan Cox
2001-06-06 21:57   ` Derek Glidden
2001-06-09  8:09     ` Rik van Riel
2001-06-07 10:46 Bernd Jendrissek
     [not found] ` <20010607153835.T14203@jessica>
2001-06-08  7:37   ` Bernd Jendrissek
2001-06-08 19:32 ` Pavel Machek
2001-06-11 12:06   ` Maciej Zenczykowski
2001-06-11 19:04     ` Rik van Riel
2001-06-12  7:46       ` Bernd Jendrissek
2001-06-07 14:22 Bulent Abali
2001-06-07 15:38 ` Mike Galbraith
2001-06-10 22:04 Rob Landley

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=m14rtt7mz1.fsf@frodo.biederman.org \
    --to=ebiederm@xmission.com \
    --cc=andrewm@uow.edu.au \
    --cc=dglidden@illusionary.com \
    --cc=jwbaker@acm.org \
    --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