Memory compression (again). . help?

From: John Richard Moser
Date: Mon Feb 27 2006 - 20:00:57 EST


-----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-----

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/