From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 04065C4829A for ; Tue, 13 Feb 2024 19:09:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8F28E6B0083; Tue, 13 Feb 2024 14:09:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8A0B96B0085; Tue, 13 Feb 2024 14:09:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 78F8B6B0087; Tue, 13 Feb 2024 14:09:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 68D546B0083 for ; Tue, 13 Feb 2024 14:09:47 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 0C196A231B for ; Tue, 13 Feb 2024 19:09:47 +0000 (UTC) X-FDA: 81787720014.06.E4549D2 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf20.hostedemail.com (Postfix) with ESMTP id 262391C0022 for ; Tue, 13 Feb 2024 19:09:44 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="cg/6GXhh"; spf=pass (imf20.hostedemail.com: domain of longman@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=longman@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707851385; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=uG0EcQlsaL04DAVBIoEXlOU2Qc1NYUIqNKPW84nzM6w=; b=SCxDFyOlVPF62+NTAej0MFoLjxoMU8FnxcelOfVOIgpT2HRyTwvr1txqHIE4MtsQvCf1r8 ctEIWRtTWqJQFaYt6urQu/QPWDag5KZ4vY8apLOW/AJ9/WGVjGlPF3wfhLVLT9elzkKlbq gos/ES0UnJ53H1FyKGaH6fXRz3S6HL0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707851385; a=rsa-sha256; cv=none; b=scTA6G9o93TNXYlWtkHyHDpAA44Z4g59va+cdmmJ/v6ZI2YWAE54DsxlENzJ724tN/b1pI 1/x4z6Fpsj1J3mrLuW1vKfLHZMv0VqrK/vR8qPw6dWyWig4mnOEskQr4yWPKfecq/hF2tp rPQ2Z4hKh6KmK107WFkUID/OefCC/jk= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="cg/6GXhh"; spf=pass (imf20.hostedemail.com: domain of longman@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=longman@redhat.com; dmarc=pass (policy=none) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1707851384; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=uG0EcQlsaL04DAVBIoEXlOU2Qc1NYUIqNKPW84nzM6w=; b=cg/6GXhhENcskIoawseSOyewLFoDUWIWkdAMJ0lalGFi+/kbuZpP/lUPNbYWeNjAzPhVCs PZMQ0dI4Jv4AhOaA67aiYXu4X7Lse7jvDloZNkZdVWjWnsi7ewGLa5NVGY1qsQ3EAhdG4b 87f4MCasv09Q+jwGWNsfy6gVOdBohFw= Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-377-tEanHhmTM4umRUxhV5WVcg-1; Tue, 13 Feb 2024 14:08:47 -0500 X-MC-Unique: tEanHhmTM4umRUxhV5WVcg-1 Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 2E6041C09836; Tue, 13 Feb 2024 19:08:47 +0000 (UTC) Received: from [10.22.10.18] (unknown [10.22.10.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id CFEE2492BC6; Tue, 13 Feb 2024 19:08:46 +0000 (UTC) Message-ID: Date: Tue, 13 Feb 2024 14:08:46 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3] cgroup2: New memory.max.effective like cgroup1 hierarchical_memory_limit Content-Language: en-US To: "Jan Kratochvil (Azul)" , cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Michal Koutny References: From: Waiman Long In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.9 X-Stat-Signature: 5hz75b5xt4ow4qot6jhgzzr1suzeh394 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 262391C0022 X-Rspam-User: X-HE-Tag: 1707851384-104780 X-HE-Meta: U2FsdGVkX1+Nznxji+Y+atk/6ma6YLFm5Fy2uX6S5M+wGUxM0WEfVS6NrOEW9n0pSaGDeogEx2SdTW9OPelf8Vm+YkWEk6bGP26UbLwuEng5yfoYrUGK2i19FI0eJAOUJW5amtRJ+evjoZMlqDbN1sjqKGBXakfNDB0wSUnauMCEk2jK6F4VPykHHlBNT/ZfvQ96afoWPYKMhcF9YdsaZAWvLAOh+/o2AP953JNiaNgdaZ9GqSJllu3aDgaxfKq8s+oBVJZ2X/gcGSNDGd1CvgSUHcazWgpCYT+9NdEHo2xas5yljTBt6//BXnLh+UI7aZztnAbNhiwNNxID5MBshQ3pc1CLSR7WJRNR815ipWkHYQha0nvd1qg/pOBF4adf+ZWyPy/McgQWSZXhj1VRzHc7qTHlEcKGnLaOh4cgPvvox7nF9YcX32V2APYYqN6uJF9e3sLYifmAlG6uXfwMufkf5sHwhOeoqzFYGwzl05igf/NEp3cLRQpvnRe+56VtDrAA9pDAbvQury5FcUGVoyZOfwlZmep6di0BrG45WdHtMlyf8BSDdTaMEuKngoQ/GdPHc6g0wKvaTs5Mi6fCaKeKZRhUGaq3Ue1doBum8ZgWTufFR+SfrVsOjZBa4Pn4KwiQVPl3tFqeDFNksR31L5a5gr3M0MyGmWV8hO5fT/4+ypAo/7mghE0l0PvZNKJRDJwSPWoMkUX4zHlcZ0/mGoX6D2jLcheUhVC+jnUF4esnY3MlShUsFVw3Rb6HNEjM1f78O75NXh3l1rD52l0vr1x0lBitZr9fcg2S4dUbbmPSULEmaMkBl+1bxDxKfwRhNjZ39U4U1RSz6oi8crzi4hE7nlipKqIIsGU9lTN4+gOmlFQP5x2tFRuYdYooCdslQZXP6RWuLTuPOemocvDk492r+jEOcXLOk49UBAdPcKReUQHO6Giu6s2EqDoR+Xd5vSyrf4Tgu+8+KccNksN CmNuW7vx vs6wsbiFnXFB6AMWuWc2IHRkzHEuLHwFLEli+Ecl94pNpfJ9ELHxft3zeB7dFwIOoU+NerKOjmSYNdUbcImjE/hMqPl7kiY/+RRsEUbKFZ/TJ9B/ixdo502jIS+HA2PB1EVK9ITOCPECsFyc2rMX5fcqHnc+W+ywJ5AfHbKLJ5Rc1ArKiIqVN7mwzgbwRjzCx3l1fhtwzMD2eCQCpfZSvREDWcCyDkpSXVifLnv72aOfuTkBwDaa5smYTfnDkWd+H3frsddupUlUKZ/moYcUdXAv4eI6CN14lKN7bRy/LUy34poEYoIlwXhzSWUBY9ntZX3WMg2YHcN4XB1kJaWqHCw068zgHeLwRWR+DNtESDeEc+NWbDV56QwvCSJtISbjPSczu X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 2/13/24 07:36, Jan Kratochvil (Azul) wrote: > Hello, > > cgroup1 (by function memcg1_stat_format) contains two lines > hierarchical_memory_limit %llu > hierarchical_memsw_limit %llu > > which are useful for userland to easily and performance-wise find out the > effective cgroup limits being applied. Otherwise userland has to > open+read+close the file "memory.max" and/or "memory.swap.max" in multiple > parent directories of a nested cgroup. > > For cgroup1 it was implemented by: > memcg: show real limit under hierarchy mode > https://github.com/torvalds/linux/commit/fee7b548e6f2bd4bfd03a1a45d3afd593de7d5e9 > Date: Wed Jan 7 18:08:26 2009 -0800 > > But for cgroup2 it has been missing so far. Based on Michal Koutny's idea this > patch now implements "memory.max.effective" and "memory.swap.max.effective" > files similar to existing "cpuset.cpus.effective". > > > Jan Kratochvil > > > v3: > memory.stat fields -> *.max.effective separate files suggested by Michal Koutny > v2: > hierarchical_memsw_limit -> hierarchical_swap_limit fix found by Waiman Long > v1: > hierarchical_memory_limit && hierarchical_memsw_limit in memory.stat > > > Signed-off-by: Jan Kratochvil (Azul) The code changes look good to me. However, your commit log isn't of the right format. We don't start the commit log with "Hello". See https://www.kernel.org/doc/Documentation/process/submitting-patches.rst You can also do a "git log" of a linux git tree and see how other people write their commit logs. Cheers, Longman > > mm/memcontrol.c | 36 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 36 insertions(+) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 1ed40f9d3..8c4cb5f60 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -6845,6 +6845,19 @@ static ssize_t memory_max_write(struct kernfs_open_file *of, > return nbytes; > } > > +static int memory_max_effective_show(struct seq_file *m, void *v) > +{ > + unsigned long memory; > + struct mem_cgroup *mi; > + > + /* Hierarchical information */ > + memory = PAGE_COUNTER_MAX; > + for (mi = mem_cgroup_from_seq(m); mi; mi = parent_mem_cgroup(mi)) > + memory = min(memory, READ_ONCE(mi->memory.max)); > + > + return seq_puts_memcg_tunable(m, memory); > +} > + > /* > * Note: don't forget to update the 'samples/cgroup/memcg_event_listener' > * if any new events become available. > @@ -7038,6 +7051,11 @@ static struct cftype memory_files[] = { > .seq_show = memory_max_show, > .write = memory_max_write, > }, > + { > + .name = "max.effective", > + .flags = CFTYPE_NOT_ON_ROOT, > + .seq_show = memory_max_effective_show, > + }, > { > .name = "events", > .flags = CFTYPE_NOT_ON_ROOT, > @@ -8040,6 +8058,19 @@ static ssize_t swap_max_write(struct kernfs_open_file *of, > return nbytes; > } > > +static int swap_max_effective_show(struct seq_file *m, void *v) > +{ > + unsigned long swap; > + struct mem_cgroup *mi; > + > + /* Hierarchical information */ > + swap = PAGE_COUNTER_MAX; > + for (mi = mem_cgroup_from_seq(m); mi; mi = parent_mem_cgroup(mi)) > + swap = min(swap, READ_ONCE(mi->swap.max)); > + > + return seq_puts_memcg_tunable(m, swap); > +} > + > static int swap_events_show(struct seq_file *m, void *v) > { > struct mem_cgroup *memcg = mem_cgroup_from_seq(m); > @@ -8072,6 +8103,11 @@ static struct cftype swap_files[] = { > .seq_show = swap_max_show, > .write = swap_max_write, > }, > + { > + .name = "swap.max.effective", > + .flags = CFTYPE_NOT_ON_ROOT, > + .seq_show = swap_max_effective_show, > + }, > { > .name = "swap.peak", > .flags = CFTYPE_NOT_ON_ROOT, >