On Mon, 19 Mar 2001, Linus Torvalds wrote:
The complete changelog is appended, but the biggest recent change is
the mmap_sem change, which I updated with new locking rules for
pte/pmd_alloc to avoid the race on the actual page table build.
This has only been tested on i386 without PAE, and is known to break
other architectures. Ingo, mind checking what PAE needs? [...]
one nontrivial issue was that on PAE the pgd has to be installed with
'present' pgd entries, due to a CPU erratum. This means that the
pgd_present() code in mm/memory.c, while correct theoretically, doesnt
work with PAE. An equivalent solution is to use !pgd_none(), which also
works with the PAE workaround.
PAE mode could re-define pgd_present() to filter out the workaround - do
you prefer this to the !pgd_none() solution?
the rest was pretty straightforward.
in any case, with the attached pae-2.4.3-A4 patch (against 2.4.3-pre7,
applies to 2.4.2-ac24 cleanly as well) applied, 2.4.3-pre7 boots & works
just fine on PAE 64GB-HIGHMEM and non-PAE kernels.
- the patch also does another cleanup: removes various bad_pagetable code
snippets all around the x86 tree, it's not needed anymore. This saves 8
KB RAM on x86 systems.
- removed the last remaining *_kernel() macro.
- fixed a minor clear_page() bug in pgalloc.h, gfp() could fail in the
future.
Ingo