Skip to content
  • Minchan Kim's avatar
    zram: writeback throttle · 619c24f4
    Minchan Kim authored
    If there are lots of write IO with flash device, it could have a
    wearout problem of storage. To overcome the problem, admin needs
    to design write limitation to guarantee flash health
    for entire product life.
    
    This patch creates a new knob "writeback_limit" on zram.
    
    writeback_limit's default value is 0 so that it doesn't limit
    any writeback. If admin want to measure writeback count in a
    certain period, he could know it via /sys/block/zram0/bd_stat's
    3rd column.
    
    If admin want to limit writeback as per-day 400M, he could do it
    like below.
    
    	MB_SHIFT=20
    	4K_SHIFT=12
    	echo $((400<<MB_SHIFT>>4K_SHIFT)) > \
    		/sys/block/zram0/writeback_limit.
    
    If admin want to allow further write again, he could do it like below
    
    	echo 0 > /sys/block/zram0/writeback_limit
    
    If admin want to see remaining writeback budget,
    
    	cat /sys/block/zram0/writeback_limit
    
    The writeback_limit count will reset whenever you reset zram(e.g.,
    system reboot, echo 1 > /sys/block/zramX/reset) so keeping how many of
    writeback happened until you reset the zram to allocate extra writeback
    budget in next setting is user's job.
    
    Link: http://lkml.kernel.org/r/20181203024045.153534-8-minchan@kernel.org
    
    
    Signed-off-by: default avatarMinchan Kim <minchan@kernel.org>
    Reviewed-by: default avatarSergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Joey Pabalinas <joeypabalinas@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
    619c24f4