Update of /cvsroot/linuxcompressed/linux/mm
In directory usw-pr-cvs1:/tmp/cvs-serv13905/mm
Added Files:
filemap.c
Log Message:
This version features the adaptable vswap implementation. It's the
first version and have to be improved, but it seems stable though. One
of the improvements is to deal with many shrink and grows in a row
(what I think it's stable but not completely functional). And we still
have to deal with a possible find_vma failure, what will cause a BUG()
in the current code.
- created vswap_alloc_and_init(), like init_comp_page(), but allocates
the page too.
- now {grow,shrink}_comp_cache() checks also if the vswap needs to be
shrunk or grown, using vswap_needs_to_{grow,shrink}().
- grow_vswap() is a very simple function. It allocates the new vswap
table, copies the pointer to the vswap entries, allocate the new vswap
entries and that's it.
- shrink_vswap() is a complex function. It tries to compact all the
used vswap entries and only when we could do it (it may be done at
once, depends on the page locks), we effectively shrink the cache.
|