Re: [PATCH v2 7/7] zram: writeback throttle

From: Minchan Kim
Date: Mon Nov 26 2018 - 21:08:39 EST


On Mon, Nov 26, 2018 at 12:54:46PM -0800, Andrew Morton wrote:
> On Mon, 26 Nov 2018 17:28:13 +0900 Minchan Kim <minchan@xxxxxxxxxx> wrote:
>
> > On small memory system, there are lots of write IO so if we use
> > flash device as swap, there would be serious flash wearout.
> > To overcome the problem, system developers need to design write
> > limitation strategy to guarantee flash health for entire product life.
> >
> > This patch creates a new konb "writeback_limit" on zram. With that,
> > if current writeback IO count(/sys/block/zramX/io_stat) excceds
> > the limitation, zram stops further writeback until admin can reset
> > the limit.
> >
> > +++ b/Documentation/ABI/testing/sysfs-block-zram
> > @@ -121,3 +121,12 @@ Contact: Minchan Kim <minchan@xxxxxxxxxx>
> > The bd_stat file is read-only and represents backing device's
> > statistics (bd_count, bd_reads, bd_writes) in a format
> > similar to block layer statistics file format.
> > +
> > +What: /sys/block/zram<id>/writeback_limit
> > +Date: November 2018
> > +Contact: Minchan Kim <minchan@xxxxxxxxxx>
> > +Description:
> > + The writeback_limit file is read-write and specifies the maximum
> > + amount of writeback ZRAM can do. The limit could be changed
> > + in run time and "0" means disable the limit.
> > + No limit is the initial state.
> > diff --git a/Documentation/blockdev/zram.txt b/Documentation/blockdev/zram.txt
> > index 550bca77d322..41748d52712d 100644
> > --- a/Documentation/blockdev/zram.txt
> > +++ b/Documentation/blockdev/zram.txt
> > @@ -164,6 +164,8 @@ reset WO trigger device reset
> > mem_used_max WO reset the `mem_used_max' counter (see later)
> > mem_limit WO specifies the maximum amount of memory ZRAM can use
> > to store the compressed data
> > +writeback_limit WO specifies the maximum amount of write IO zram can
> > + write out to backing device
>
> Neither the changelog nor the Documentation specify the units of
> writeback_limit. Bytes? Pages? Blocks?
>
> This gets so confusing that in many /proc/sys/vm files we actually put
> the units into the filenames.
>

I will use unit as 4K.

Thanks.