swap death (as in 2.1.91) and page tables

Rik van Riel (H.H.vanRiel@phys.uu.nl)
Wed, 20 May 1998 15:17:25 +0200 (MET DST)


Hi,

As you all know, Linux currently has a problem with freeing
up memory in such a way that we get 32-page continuous free
area's.
This is probably because of kernel structures messing up
everything ;)

Now the idea: if we put page tables and the process structs
in the SLAB cache _and_ make the SLAB cache allocate memory
in chunks of at least 32kB, then:
- the rest of memory will always be swappable
- kswapd can actually free up large chunks of contiguous
free memory (since the nonswappable stuff is in the large
SLAB areas)
- the SLAB cache can continue allocating large areas, since
kswapd can easily free new ones
- the buddy allocator is usable again, since we won't block
128k areas with one page table page anymore
- in effect, the memory fragmentation problem is solved,
except for the obvious mlock() exception

At a later stage, we can consider putting the user page
allocation in the SLAB too, as the SLAB allocator knows
about page coloring and the buddy allocator really won't
be needed anymore...

Well, what obvious points did I miss? {:-)

Rik.
+-------------------------------------------+--------------------------+
| Linux: - LinuxHQ MM-patches page | Scouting webmaster |
| - kswapd ask-him & complain-to guy | Vries cubscout leader |
| http://www.phys.uu.nl/~riel/ | <H.H.vanRiel@phys.uu.nl> |
+-------------------------------------------+--------------------------+

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu