Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v4.9-rc7 26 lines 1.2 kB view raw
1z3fold 2------ 3 4z3fold is a special purpose allocator for storing compressed pages. 5It is designed to store up to three compressed pages per physical page. 6It is a zbud derivative which allows for higher compression 7ratio keeping the simplicity and determinism of its predecessor. 8 9The main differences between z3fold and zbud are: 10* unlike zbud, z3fold allows for up to PAGE_SIZE allocations 11* z3fold can hold up to 3 compressed pages in its page 12* z3fold doesn't export any API itself and is thus intended to be used 13 via the zpool API. 14 15To keep the determinism and simplicity, z3fold, just like zbud, always 16stores an integral number of compressed pages per page, but it can store 17up to 3 pages unlike zbud which can store at most 2. Therefore the 18compression ratio goes to around 2.7x while zbud's one is around 1.7x. 19 20Unlike zbud (but like zsmalloc for that matter) z3fold_alloc() does not 21return a dereferenceable pointer. Instead, it returns an unsigned long 22handle which encodes actual location of the allocated object. 23 24Keeping effective compression ratio close to zsmalloc's, z3fold doesn't 25depend on MMU enabled and provides more predictable reclaim behavior 26which makes it a better fit for small and response-critical systems.