Re: + zram-support-compaction.patch added to -mm tree

From: Sergey Senozhatsky
Date: Thu Mar 05 2015 - 00:29:45 EST


On (03/04/15 14:02), akpm@xxxxxxxxxxxxxxxxxxxx wrote:
> +What: /sys/block/zram<id>/compact
> +Date: August 2015
> +Contact: Minchan Kim <minchan@xxxxxxxxxx>
> +Description:
> + The compact file is write-only and trigger compaction for
> + allocator zrm uses. The allocator moves some objects so that
> + it could free fragment space.
> +
> +What: /sys/block/zram<id>/num_migrated
> +Date: August 2015
> +Contact: Minchan Kim <minchan@xxxxxxxxxx>
> +Description:
> + The compact file is read-only and shows how many object
> + migrated by compaction.
> diff -puN drivers/block/zram/zram_drv.c~zram-support-compaction drivers/block/zram/zram_drv.c
> --- a/drivers/block/zram/zram_drv.c~zram-support-compaction
> +++ a/drivers/block/zram/zram_drv.c
> @@ -70,6 +70,27 @@ static inline struct zram *dev_to_zram(s
> return (struct zram *)dev_to_disk(dev)->private_data;
> }

First of all, my apologies to Andrew Morton. if I reply to this email, my mutt for
some reason replaces akpm at linux-foundation.org with linux-kernel at vger.kernel.org
(I can't see why this is happening, but this is somehow a `stable behaviour'). I didn't
spot this, so this is why Andrew was not Cc-d to my previous reply to this eamil.




rather a discussion question.

Minchan, do you want to provide num_migrated as part of zsmalloc stats rather
than having yet another zram attr? we already provide zsmalloc stats and this
type of information seems to belong there. just idea.

-ss

>
> +static ssize_t compact_store(struct device *dev,
> + struct device_attribute *attr, const char *buf, size_t len)
> +{
> + unsigned long nr_migrated;
> + struct zram *zram = dev_to_zram(dev);
> + struct zram_meta *meta;
> +
> + down_read(&zram->init_lock);
> + if (!init_done(zram)) {
> + up_read(&zram->init_lock);
> + return -EINVAL;
> + }
> +
> + meta = zram->meta;
> + nr_migrated = zs_compact(meta->mem_pool);
> + atomic64_add(nr_migrated, &zram->stats.num_migrated);
> + up_read(&zram->init_lock);
> +
> + return len;
> +}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/