mirror of
https://github.com/torvalds/linux.git
synced 2024-12-11 05:33:09 +00:00
bb416d18b8
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" for 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. [minchan@kernel.org: v4] Link: http://lkml.kernel.org/r/20181203024045.153534-8-minchan@kernel.org Link: http://lkml.kernel.org/r/20181127055429.251614-8-minchan@kernel.org Signed-off-by: Minchan Kim <minchan@kernel.org> Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Cc: Joey Pabalinas <joeypabalinas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
133 lines
4.5 KiB
Plaintext
133 lines
4.5 KiB
Plaintext
What: /sys/block/zram<id>/disksize
|
|
Date: August 2010
|
|
Contact: Nitin Gupta <ngupta@vflare.org>
|
|
Description:
|
|
The disksize file is read-write and specifies the disk size
|
|
which represents the limit on the *uncompressed* worth of data
|
|
that can be stored in this disk.
|
|
Unit: bytes
|
|
|
|
What: /sys/block/zram<id>/initstate
|
|
Date: August 2010
|
|
Contact: Nitin Gupta <ngupta@vflare.org>
|
|
Description:
|
|
The initstate file is read-only and shows the initialization
|
|
state of the device.
|
|
|
|
What: /sys/block/zram<id>/reset
|
|
Date: August 2010
|
|
Contact: Nitin Gupta <ngupta@vflare.org>
|
|
Description:
|
|
The reset file is write-only and allows resetting the
|
|
device. The reset operation frees all the memory associated
|
|
with this device.
|
|
|
|
What: /sys/block/zram<id>/max_comp_streams
|
|
Date: February 2014
|
|
Contact: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
|
Description:
|
|
The max_comp_streams file is read-write and specifies the
|
|
number of backend's zcomp_strm compression streams (number of
|
|
concurrent compress operations).
|
|
|
|
What: /sys/block/zram<id>/comp_algorithm
|
|
Date: February 2014
|
|
Contact: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
|
Description:
|
|
The comp_algorithm file is read-write and lets to show
|
|
available and selected compression algorithms, change
|
|
compression algorithm selection.
|
|
|
|
What: /sys/block/zram<id>/mem_used_max
|
|
Date: August 2014
|
|
Contact: Minchan Kim <minchan@kernel.org>
|
|
Description:
|
|
The mem_used_max file is write-only and is used to reset
|
|
the counter of maximum memory zram have consumed to store
|
|
compressed data. For resetting the value, you should write
|
|
"0". Otherwise, you could see -EINVAL.
|
|
Unit: bytes
|
|
|
|
What: /sys/block/zram<id>/mem_limit
|
|
Date: August 2014
|
|
Contact: Minchan Kim <minchan@kernel.org>
|
|
Description:
|
|
The mem_limit file is write-only and specifies the maximum
|
|
amount of memory ZRAM can use to store the compressed data.
|
|
The limit could be changed in run time and "0" means disable
|
|
the limit. No limit is the initial state. Unit: bytes
|
|
|
|
What: /sys/block/zram<id>/compact
|
|
Date: August 2015
|
|
Contact: Minchan Kim <minchan@kernel.org>
|
|
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>/io_stat
|
|
Date: August 2015
|
|
Contact: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
|
Description:
|
|
The io_stat file is read-only and accumulates device's I/O
|
|
statistics not accounted by block layer. For example,
|
|
failed_reads, failed_writes, etc. File format is similar to
|
|
block layer statistics file format.
|
|
|
|
What: /sys/block/zram<id>/mm_stat
|
|
Date: August 2015
|
|
Contact: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
|
Description:
|
|
The mm_stat file is read-only and represents device's mm
|
|
statistics (orig_data_size, compr_data_size, etc.) in a format
|
|
similar to block layer statistics file format.
|
|
|
|
What: /sys/block/zram<id>/debug_stat
|
|
Date: July 2016
|
|
Contact: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
|
|
Description:
|
|
The debug_stat file is read-only and represents various
|
|
device's debugging info useful for kernel developers. Its
|
|
format is not documented intentionally and may change
|
|
anytime without any notice.
|
|
|
|
What: /sys/block/zram<id>/backing_dev
|
|
Date: June 2017
|
|
Contact: Minchan Kim <minchan@kernel.org>
|
|
Description:
|
|
The backing_dev file is read-write and set up backing
|
|
device for zram to write incompressible pages.
|
|
For using, user should enable CONFIG_ZRAM_WRITEBACK.
|
|
|
|
What: /sys/block/zram<id>/idle
|
|
Date: November 2018
|
|
Contact: Minchan Kim <minchan@kernel.org>
|
|
Description:
|
|
idle file is write-only and mark zram slot as idle.
|
|
If system has mounted debugfs, user can see which slots
|
|
are idle via /sys/kernel/debug/zram/zram<id>/block_state
|
|
|
|
What: /sys/block/zram<id>/writeback
|
|
Date: November 2018
|
|
Contact: Minchan Kim <minchan@kernel.org>
|
|
Description:
|
|
The writeback file is write-only and trigger idle and/or
|
|
huge page writeback to backing device.
|
|
|
|
What: /sys/block/zram<id>/bd_stat
|
|
Date: November 2018
|
|
Contact: Minchan Kim <minchan@kernel.org>
|
|
Description:
|
|
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@kernel.org>
|
|
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.
|