Messages in this thread | | | Date | Wed, 20 May 1998 15:17:25 +0200 (MET DST) | From | Rik van Riel <> | Subject | swap death (as in 2.1.91) and page tables |
| |
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
| |