On Sat, Jun 05, 2021 at 09:24:00AM -0700, yongw.pur@xxxxxxxxx wrote:
From: wangyong <yongw.pur@xxxxxxxxx>
When zram is used, available+Swap free memory is obviously
bigger than we actually can use, because zram can compress
memory by compression algorithm and zram compressed data
will occupy memory too.
So, we can count the compression ratio of zram in the kernel.
The space will be saved by zram and other swap device are
calculated as follows:
zram[swapfree - swapfree * compress ratio] + swapdev[swapfree]
We can evaluate the available memory of the whole system as:
MemAvailable+zram[swapfree - swapfree * compress ratio]+swapdev[swapfree]
Add an entry to the /proc/meminfo file, returns swap will save space.
Which name is more appropriate is still under consideration.
There are several alternative names: SwapAvailable, SwapSaved,
SwapCompressible
Signed-off-by: wangyong <yongw.pur@xxxxxxxxx>
---
drivers/block/zram/zcomp.h | 1 +
drivers/block/zram/zram_drv.c | 19 +++++++++
drivers/block/zram/zram_drv.h | 1 +
fs/proc/meminfo.c | 1 +
include/linux/swap.h | 10 +++++
mm/swapfile.c | 95 +++++++++++++++++++++++++++++++++++++++++++
mm/vmscan.c | 1 +
7 files changed, 128 insertions(+)
You are adding a new sysfs file with no new Documentation/ABI entry.
Also are you sure you are allowed to add a new proc file entry without
breaking existing tools?