forked from Minki/linux
1d69a3f8ae
This patch includes some fixes and cleanup for idle-page writeback. 1. writeback_limit interface Now writeback_limit interface is rather conusing. For example, once writeback limit budget is exausted, admin can see 0 from /sys/block/zramX/writeback_limit which is same semantic with disable writeback_limit at this moment. IOW, admin cannot tell that zero came from disable writeback limit or exausted writeback limit. To make the interface clear, let's sepatate enable of writeback limit to another knob - /sys/block/zram0/writeback_limit_enable * before: while true : # to re-enable writeback limit once previous one is used up echo 0 > /sys/block/zram0/writeback_limit echo $((200<<20)) > /sys/block/zram0/writeback_limit .. .. # used up the writeback limit budget * new # To enable writeback limit, from the beginning, admin should # enable it. echo $((200<<20)) > /sys/block/zram0/writeback_limit echo 1 > /sys/block/zram/0/writeback_limit_enable while true : echo $((200<<20)) > /sys/block/zram0/writeback_limit .. .. # used up the writeback limit budget It's much strightforward. 2. fix condition check idle/huge writeback mode check The mode in writeback_store is not bit opeartion any more so no need to use bit operations. Furthermore, current condition check is broken in that it does writeback every pages regardless of huge/idle. 3. clean up idle_store No need to use goto. [minchan@kernel.org: missed spin_lock_init] Link: http://lkml.kernel.org/r/20190103001601.GA255139@google.com Link: http://lkml.kernel.org/r/20181224033529.19450-1-minchan@kernel.org Signed-off-by: Minchan Kim <minchan@kernel.org> Suggested-by: John Dias <joaodias@google.com> Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com> Cc: John Dias <joaodias@google.com> Cc: Srinivas Paladugu <srnvs@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
140 lines
4.7 KiB
Plaintext
140 lines
4.7 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_enable
|
|
Date: November 2018
|
|
Contact: Minchan Kim <minchan@kernel.org>
|
|
Description:
|
|
The writeback_limit_enable file is read-write and specifies
|
|
eanbe of writeback_limit feature. "1" means eable the feature.
|
|
No limit "0" is the initial state.
|
|
|
|
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.
|