diff --git a/drivers/block/zram/zram_group/group_writeback.c b/drivers/block/zram/zram_group/group_writeback.c index abc8a5c4c6633f0c2271d964227b660c6d23e753..18b7f0532924a5bd04134e277b3e65261b4c1a76 100644 --- a/drivers/block/zram/zram_group/group_writeback.c +++ b/drivers/block/zram/zram_group/group_writeback.c @@ -471,6 +471,8 @@ u64 write_group_objs(struct zram *zram, u16 gid, u64 req_size) write_size += size; } + atomic64_add(write_size, &zram->zgrp->stats[0].write_size); + atomic64_add(write_size, &zram->zgrp->stats[gid].write_size); return write_size; } #endif diff --git a/mm/zswapd_control.c b/mm/zswapd_control.c index ab5ca24b300696633b8b337cc5d91b65e9203988..8ee2ba6f815730887d21784500d1e53e8cd8487d 100644 --- a/mm/zswapd_control.c +++ b/mm/zswapd_control.c @@ -666,6 +666,17 @@ static int zswapd_vmstat_show(struct seq_file *m, void *v) return 0; } +static int eswap_info_show(struct seq_file *m, void *v) +{ + struct mem_cgroup *memcg = mem_cgroup_from_css(seq_css(m)); + unsigned long long eswap_size; + + eswap_size = memcg_data_size(memcg, WRITE_SIZE) / SZ_1K; + seq_printf(m, "Total Swapout Size: %llu kB\n", eswap_size); + + return 0; +} + void memcg_eswap_info_show(struct seq_file *m) { struct mem_cgroup *memcg = mem_cgroup_from_css(seq_css(m)); @@ -829,6 +840,11 @@ static struct cftype zswapd_policy_files[] = { .seq_show = zswapd_vmstat_show, }, #endif + { + .name = "eswap_info", + .flags = CFTYPE_ONLY_ON_ROOT, + .seq_show = eswap_info_show, + }, { }, /* terminate */ };