On (03/04/15 14:02), [email protected] wrote:
> +What:                /sys/block/zram<id>/compact
> +Date:                August 2015
> +Contact:     Minchan Kim <[email protected]>
> +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 <[email protected]>
> +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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to