public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: John Richard Moser <nigelenki@comcast.net>
To: linux-kernel@vger.kernel.org
Subject: Memory compression (again). . help?
Date: Mon, 27 Feb 2006 20:03:09 -0500	[thread overview]
Message-ID: <4403A14D.4050303@comcast.net> (raw)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I'm not quite sure what I'm doing or when I have time, but I'm looking
into writing in some hooks and a compression routine to manage
compressed memory.  I have the following considerations:

 - Compressed memory should become "Swap."  This means the kernel would
   report memory used for compressed storage as used swap.  At boot it
   would reflect 0K swap; when there are 1024KiB of pages compressed in
   memory, 1024KiB of additional "swap" is reported, all used.
 - I need to stop the kernel when it's about to swap.  This should be
   done when it's decided that either invalidating disk cache or
   swapping is the best course of action, and what to do with what.  At
   this point I'll have to be able to see what the kernel wants to swap
   out and tell it that it's taken care of.
 - I need to catch invalid pagefaults that look for swap, as well as the
   disk cache mechanism.  I'll be adding stuff to compress disk cache,
   so disk cache might need to be "swapped in" effectively.

Can anyone recommend what functions I should look at modifying?  I'm
planning on using Rodrigo Castro's WK4x4 or WKdm algorithms, as they
worked great in his proof of concept.  32KiB blocks will be used because
I got about a 40% reduction with those, and that was where I reached
asymptotic growth (larger blocks did not compress much more, smaller
blocks compressed much less).

Compressed memory is great for things like LiveCDs and huge database
servers, as well as just giving almost-but-not-quite free memory in general.

- --
All content of all messages exchanged herein are left in the
Public Domain, unless otherwise explicitly stated.

    Creative brains are a valuable, limited resource. They shouldn't be
    wasted on re-inventing the wheel when there are so many fascinating
    new problems waiting out there.
                                                 -- Eric Steven Raymond

    We will enslave their women, eat their children and rape their
    cattle!
                                     -- Evil alien overlord from Blasto
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEA6FKhDd4aOud5P8RAnGyAJ9kFbdxA5+DroHFOZS7oM4uzYhN1gCfbVa+
rHPUYKjXjekcwLnHN+e12IE=
=K/bw
-----END PGP SIGNATURE-----


             reply	other threads:[~2006-02-28  1:03 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-28  1:03 John Richard Moser [this message]
2006-02-28  3:27 ` Memory compression (again). . help? John Richard Moser
2006-02-28  5:20   ` Magnus Damm
2006-02-28 12:06     ` John Richard Moser
2006-02-28 16:24   ` Rik van Riel
2006-02-28 17:02     ` John Richard Moser
2006-02-28  4:00 ` Alexander E. Patrakov
2006-02-28 12:18   ` John Richard Moser
2006-02-28 12:38     ` Asbjørn Sannes
2006-02-28 16:06       ` John Richard Moser

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=4403A14D.4050303@comcast.net \
    --to=nigelenki@comcast.net \
    --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