Re: [PATCH 0/3] zsmalloc: small compaction improvements

Minchan Kim
2015-07-13T23:36:13Z

Hello Sergey,

On Sat, Jul 11, 2015 at 06:45:29PM +0900, Sergey Senozhatsky wrote:
> Hello,
>
> First two patches introduce new zsmalloc zs_pages_to_compact()
> symbol and change zram's `compact' sysfs attribute to be
> read-write:
> -- write triggers compaction, no changes
> -- read returns the number of pages that compaction can
> potentially free
>
> This lets user space to make a bit better decisions and to
> avoid unneeded (which will not result in any significant
> memory savings) compaction calls:
>
> Example:
>
> if [ `cat /sys/block/zram<id>/compact` -gt 10 ]; then
> echo 1 > /sys/block/zram<id>/compact;
> fi
>
> Up until now user space could not tell whether compaction
> will result in any gain.

First of all, thanks for the looking this.

Question:

What is motivation?
IOW, did you see big overhead by user-triggered compaction? so,
do you want to throttle it by userspace?

>
> The third patch removes class locking around zs_can_compact()
> in zs_pages_to_compact(), the motivation and details are
> provided in the commit message.
>
> Sergey Senozhatsky (3):
> zsmalloc: factor out zs_pages_to_compact()
> zram: make compact a read-write sysfs node
> zsmalloc: do not take class lock in zs_pages_to_compact()
>
> Documentation/ABI/testing/sysfs-block-zram | 7 +++---
> Documentation/blockdev/zram.txt | 4 +++-
> drivers/block/zram/zram_drv.c | 16 ++++++++++++-
> include/linux/zsmalloc.h | 1 +
> mm/zsmalloc.c | 37 +++++++++++++++++-------------
> 5 files changed, 44 insertions(+), 21 deletions(-)
>
> --
> 2.4.5
>

--
Kind regards,
Minchan Kim