From: Xiu Jianfeng <xiujianfeng@huawei.com>
To: <tj@kernel.org>, <lizefan.x@bytedance.com>, <hannes@cmpxchg.org>,
<corbet@lwn.net>, <akpm@linux-foundation.org>
Cc: <cgroups@vger.kernel.org>, <linux-doc@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <linux-mm@kvack.org>
Subject: [PATCH -next] mm/hugetlb_cgroup: introduce peak and rsvd.peak to v2
Date: Tue, 2 Jul 2024 12:57:28 +0000 [thread overview]
Message-ID: <20240702125728.2743143-1-xiujianfeng@huawei.com> (raw)
Introduce peak and rsvd.peak to v2 to show the historical maximum
usage of resources, as in some scenarios it is necessary to configure
the value of max/rsvd.max based on the peak usage of resources.
Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com>
---
Documentation/admin-guide/cgroup-v2.rst | 8 ++++++++
mm/hugetlb_cgroup.c | 19 +++++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst
index ae0fdb6fc618..97d19968230a 100644
--- a/Documentation/admin-guide/cgroup-v2.rst
+++ b/Documentation/admin-guide/cgroup-v2.rst
@@ -2607,6 +2607,14 @@ HugeTLB Interface Files
hugetlb pages of <hugepagesize> in this cgroup. Only active in
use hugetlb pages are included. The per-node values are in bytes.
+ hugetlb.<hugepagesize>.peak
+ Show historical maximum usage for "hugepagesize" hugetlb. It exists
+ for all the cgroup except root.
+
+ hugetlb.<hugepagesize>.rsvd.peak
+ Show historical maximum usage for "hugepagesize" hugetlb reservations.
+ It exists for all the cgroup except root.
+
Misc
----
diff --git a/mm/hugetlb_cgroup.c b/mm/hugetlb_cgroup.c
index 4ff238ba1250..f443a56409a9 100644
--- a/mm/hugetlb_cgroup.c
+++ b/mm/hugetlb_cgroup.c
@@ -583,6 +583,13 @@ static int hugetlb_cgroup_read_u64_max(struct seq_file *seq, void *v)
else
seq_printf(seq, "%llu\n", val * PAGE_SIZE);
break;
+ case RES_RSVD_MAX_USAGE:
+ counter = &h_cg->rsvd_hugepage[idx];
+ fallthrough;
+ case RES_MAX_USAGE:
+ val = (u64)counter->watermark;
+ seq_printf(seq, "%llu\n", val * PAGE_SIZE);
+ break;
default:
BUG();
}
@@ -739,6 +746,18 @@ static struct cftype hugetlb_dfl_tmpl[] = {
.seq_show = hugetlb_cgroup_read_u64_max,
.flags = CFTYPE_NOT_ON_ROOT,
},
+ {
+ .name = "peak",
+ .private = RES_MAX_USAGE,
+ .seq_show = hugetlb_cgroup_read_u64_max,
+ .flags = CFTYPE_NOT_ON_ROOT,
+ },
+ {
+ .name = "rsvd.peak",
+ .private = RES_RSVD_MAX_USAGE,
+ .seq_show = hugetlb_cgroup_read_u64_max,
+ .flags = CFTYPE_NOT_ON_ROOT,
+ },
{
.name = "events",
.seq_show = hugetlb_events_show,
--
2.34.1
next reply other threads:[~2024-07-02 13:05 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-02 12:57 Xiu Jianfeng [this message]
2024-07-03 1:58 ` Andrew Morton
2024-07-03 2:45 ` xiujianfeng
2024-07-03 20:38 ` Andrew Morton
2024-07-08 12:48 ` Michal Hocko
2024-07-08 13:40 ` xiujianfeng
2024-07-08 16:04 ` Michal Hocko
2024-07-09 12:47 ` xiujianfeng
2024-07-09 13:05 ` Michal Hocko
2024-12-01 6:52 ` Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240702125728.2743143-1-xiujianfeng@huawei.com \
--to=xiujianfeng@huawei.com \
--cc=akpm@linux-foundation.org \
--cc=cgroups@vger.kernel.org \
--cc=corbet@lwn.net \
--cc=hannes@cmpxchg.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lizefan.x@bytedance.com \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox