Commit 960fa2c8 authored by Yangtao Li's avatar Yangtao Li Committed by Jaegeuk Kim
Browse files

f2fs: export compress_percent and compress_watermark entries



This patch export below sysfs entries for better control cached
compress page count.

/sys/fs/f2fs/<disk>/compress_watermark
/sys/fs/f2fs/<disk>/compress_percent

Signed-off-by: default avatarYangtao Li <frank.li@vivo.com>
Reviewed-by: default avatarChao Yu <chao@kernel.org>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 60630375
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -729,3 +729,20 @@ What: /sys/fs/f2fs/<disk>/last_age_weight
Date:		January 2023
Contact:	"Ping Xiong" <xiongping1@xiaomi.com>
Description:	When DATA SEPARATION is on, it controls the weight of last data block age.

What:		/sys/fs/f2fs/<disk>/compress_watermark
Date:		February 2023
Contact:	"Yangtao Li" <frank.li@vivo.com>
Description:	When compress cache is on, it controls free memory watermark
		in order to limit caching compress page. If free memory is lower
		than watermark, then deny caching compress page. The value should be in
		range of (0, 100], by default it was initialized as 20(%).

What:		/sys/fs/f2fs/<disk>/compress_percent
Date:		February 2023
Contact:	"Yangtao Li" <frank.li@vivo.com>
Description:	When compress cache is on, it controls cached page
		percent(compress pages / free_ram) in order to limit caching compress page.
		If cached page percent exceed threshold, then deny caching compress page.
		The value should be in range of (0, 100], by default it was initialized
		as 20(%).
+18 −0
Original line number Diff line number Diff line
@@ -598,6 +598,20 @@ static ssize_t __sbi_store(struct f2fs_attr *a,
		sbi->compr_new_inode = 0;
		return count;
	}

	if (!strcmp(a->attr.name, "compress_percent")) {
		if (t == 0 || t > 100)
			return -EINVAL;
		*ui = t;
		return count;
	}

	if (!strcmp(a->attr.name, "compress_watermark")) {
		if (t == 0 || t > 100)
			return -EINVAL;
		*ui = t;
		return count;
	}
#endif

	if (!strcmp(a->attr.name, "atgc_candidate_ratio")) {
@@ -950,6 +964,8 @@ F2FS_FEATURE_RO_ATTR(compression);
F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, compr_written_block, compr_written_block);
F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, compr_saved_block, compr_saved_block);
F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, compr_new_inode, compr_new_inode);
F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, compress_percent, compress_percent);
F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, compress_watermark, compress_watermark);
#endif
F2FS_FEATURE_RO_ATTR(pin_file);

@@ -1057,6 +1073,8 @@ static struct attribute *f2fs_attrs[] = {
	ATTR_LIST(compr_written_block),
	ATTR_LIST(compr_saved_block),
	ATTR_LIST(compr_new_inode),
	ATTR_LIST(compress_percent),
	ATTR_LIST(compress_watermark),
#endif
	/* For ATGC */
	ATTR_LIST(atgc_candidate_ratio),