Re: Zram/Zmalloc Questions

From: Sergey Senozhatsky
Date: Mon Nov 07 2016 - 20:01:32 EST


On (11/07/16 10:50), Cory Pruce wrote:
> I see in zsmalloc.c that zsmalloc is mounted as a pseudo filesystem (block
> device I believe). However, there are empty implementations of
> zsmalloc_mount and zsmalloc_unmount for when CONFIG_COMPACTION is not set.

no. it's because compaction needs an inode via alloc_anon_inode().
look at inode->i_mapping->a_ops. zsmalloc does require or depend on
mounting otherwise.

[..]
> Why is bit_spin_lock being used instead of the general spin_lock? Is there
> some performance benefit?

no. to save the memory. look at bits squeezing from handle. otherwise,
one would have to allocate both handle and a 4-byte spin_lock. I believe
bit_spin_lock in general have worse performance than spin_lock, just
because spin_lock is not always "a silly busy loop", while bit_spin_lock
is.

-ss