Message ID | 0f1be041f8de95603753ffe989bd25069efa13bb.camel@mengyan1223.wang (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [RFC] mm: memcontrol: add cgroup v2 interface to read memory watermark | expand |
On Sat, Jun 15, 2019 at 04:20:04PM +0800, Xi Ruoyao wrote: > Introduce a control file memory.watermark showing the watermark > consumption of the cgroup and its descendants, in bytes. > > Signed-off-by: Xi Ruoyao <xry111@mengyan1223.wang> Memory usage w/o pressure metric isn't all that useful and reporting just the historical maximum of memory.current can be outright misleading. The use case of determining maximum amount of required memory is legit but it needs to maintain sustained positive pressure while taking measurements. There are efforts on this front, so let's not merge this one for now. Nacked-by: Tejun Heo <tj@kernel.org> Thanks.
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index ba9138a4a1de..b1d968f2adcd 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5495,6 +5495,13 @@ static u64 memory_current_read(struct cgroup_subsys_state *css, return (u64)page_counter_read(&memcg->memory) * PAGE_SIZE; } +static u64 memory_watermark_read(struct cgroup_subsys_state *css, + struct cftype *cft) +{ + struct mem_cgroup *memcg = mem_cgroup_from_css(css); + return (u64)memcg->memory.watermark * PAGE_SIZE; +} + static int memory_min_show(struct seq_file *m, void *v) {
Introduce a control file memory.watermark showing the watermark consumption of the cgroup and its descendants, in bytes. Signed-off-by: Xi Ruoyao <xry111@mengyan1223.wang> --- mm/memcontrol.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) return seq_puts_memcg_tunable(m, @@ -5771,6 +5778,11 @@ static struct cftype memory_files[] = { .flags = CFTYPE_NOT_ON_ROOT, .read_u64 = memory_current_read, }, + { + .name = "watermark", + .flags = CFTYPE_NOT_ON_ROOT, + .read_u64 = memory_watermark_read, + }, { .name = "min", .flags = CFTYPE_NOT_ON_ROOT,