From: William Lee Irwin III <wli@holomorphy.com>
To: linux-kernel@vger.kernel.org
Subject: pgcl-2.5.63-1
Date: Tue, 25 Feb 2003 22:37:16 -0800 [thread overview]
Message-ID: <20030226063716.GJ10396@holomorphy.com> (raw)
***** if you don't hack the kernel, stop reading now *****
pgcl is a forward port and/or 2.5.x (re)implementation of page
clustering, originally implemented by Hugh Dickins for 2.4.7.
Don't blame Hugh -- all the bugs are mine and his code worked.
This patch is currently in a WIP phase of programming with various
relatively severe bugs getting worked out, though I've yet to encounter
non-fsck-recoverable filesystem corruption with remotely current sources.
Don't bother trying if you aren't prepared to debug.
The patch is available from:
ftp://ftp.kernel.org/pub/linux/kernel/people/wli/vm/pgcl/
The patches are incremental and "unpackaged". You will have to fetch
the incremental pgcl-2.5.62-1A, pgcl-2.5.62-1B, etc. diffs to apply
on top of pgcl-2.5.62-1 etc. Well, pgcl-2.5.63-1 is current, but you
get the idea.
If you change PAGE_SIZE back to MMUPAGE_SIZE, you shouldn't be able
to observe any difference in behavior. If you do, send me either a
patch or a comprehensible(!) bug report. This is _not_ for naive users.
Known issues:
(0) This code is currently x86-32 only. Dropping something to say
PAGE_SIZE == MMUPAGE_SIZE into other arches's code is trivial
but largely meaningless.
(1) aio is 100% untested, and probably broken.
(2) Unusual corner cases appear to show binary compatibility breakage.
This varies by distro; by and large /bin/sh should run, and
most of the apps needed for initscripts run. Worse comes to
worse init=/bin/sash or some other static executable should run,
though if there's a bug in initial user stack setup that could
defeat even static executables used for init=...
(3) SCSI ioctl's are probably broken, but 100% untested.
(4) Various drivers attempt to vmalloc() and/or ioremap() excessively
large regions now that PAGE_SIZE has changed. They may fail
during registration, but nothing interesting at runtime.
(5) Some machines stopped booting probably because of either arch code
missed during the audits or flat out bugs.
(6) I saw some spontaneous reboots ca. 2.5.59 on a stinkpad. The
source of the stuff was never tracked down, and no recent boots.
(7) L3 pagetables aren't fixed up to prevent internal fragmentation.
This means PAGE_SIZE will get allocated for every 4KB of
L3 pagetables required for a given workload.
(8) Anonymous pagefault handling hasn't been fixed up to prevent
internal fragmentation. This means that most of the time,
PAGE_SIZE will get allocated for every 4KB of anonymous
memory faulted in. Easily fixable, but not merged due to
the fact it provokes bugs more easily with some of the
get_user_pages() users.
(9) Various pagetable indexing algorithms were "sort of needlessly"
swizzled around to deal with non-contiguous pagetables set
up by page_table_init() and friends. The arch code should
be eventually fixed up to make the rest of the world happy
and the changes to core/whatever code made for it reverted.
-- wli
reply other threads:[~2003-02-26 6:27 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=20030226063716.GJ10396@holomorphy.com \
--to=wli@holomorphy.com \
--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
all inboxes | Powered by JetHome®