From: Shakeel Butt <shakeel.butt@linux.dev>
To: "T.J. Mercier" <tjmercier@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Johannes Weiner <hannes@cmpxchg.org>,
Michal Hocko <mhocko@kernel.org>,
Roman Gushchin <roman.gushchin@linux.dev>,
Muchun Song <muchun.song@linux.dev>,
Greg Thelen <gthelen@google.com>,
Facebook Kernel Team <kernel-team@meta.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH] memcg: expose children memory usage for root
Date: Fri, 26 Jul 2024 08:46:55 -0700 [thread overview]
Message-ID: <dhq4sgkuyix6le66i6usodzs6pqyturvl7awmzuyfzpgbqg5x7@xxocuq2wmbvd> (raw)
In-Reply-To: <CABdmKX2Hsd7i_Erc2_n8FQqY90mMgX24hkVe+z=y9tCk7sUL6g@mail.gmail.com>
Hi T.J.
On Thu, Jul 25, 2024 at 04:12:12PM GMT, T.J. Mercier wrote:
> On Mon, Jul 22, 2024 at 3:53 PM Shakeel Butt <shakeel.butt@linux.dev> wrote:
> >
> > Linux kernel does not expose memory.current on the root memcg and there
> > are applications which have to traverse all the top level memcgs to
> > calculate the total memory charged in the system. This is more expensive
> > (directory traversal and multiple open and reads) and is racy on a busy
> > machine. As the kernel already have the needed information i.e. root's
> > memory.current, why not expose that?
> >
> > However root's memory.current will have a different semantics than the
> > non-root's memory.current as the kernel skips the charging for root, so
> > maybe it is better to have a different named interface for the root.
> > Something like memory.children_usage only for root memcg.
> >
> > Now there is still a question that why the kernel does not expose
> > memory.current for the root. The historical reason was that the memcg
> > charging was expensice and to provide the users to bypass the memcg
> > charging by letting them run in the root. However do we still want to
> > have this exception today? What is stopping us to start charging the
> > root memcg as well. Of course the root will not have limits but the
> > allocations will go through memcg charging and then the memory.current
> > of root and non-root will have the same semantics.
> >
> > This is an RFC to start a discussion on memcg charging for root.
>
> Hi Shakeel,
>
> Since the root already has a page_counter I'm not opposed to this new
> file as it doesn't increase the page_counter depth for children.
> However I don't currently have any use-cases for it that wouldn't be
> met by memory.stat in the root.
I think difference would be getting a single number versus accumulating
different fields in memory.stat to get that number (memory used by
root's children) which might be a bit error prone.
>
> As far as charging, I've only ever seen kthreads and init in the root.
> You have workloads that run there?
No workloads in root. The charging is only to make the semanctics of
root's memory.current same as its descendants.
Thanks,
Shakeel
next prev parent reply other threads:[~2024-07-26 15:47 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-22 22:53 Shakeel Butt
2024-07-25 23:12 ` T.J. Mercier
2024-07-26 15:46 ` Shakeel Butt [this message]
2024-07-26 16:46 ` T.J. Mercier
2024-07-25 23:20 ` Yosry Ahmed
2024-07-26 15:48 ` Shakeel Butt
2024-07-26 16:25 ` Yosry Ahmed
2024-07-26 16:50 ` T.J. Mercier
2024-07-26 17:18 ` Shakeel Butt
2024-07-26 17:30 ` Shakeel Butt
2024-07-26 17:43 ` Yosry Ahmed
2024-07-26 18:16 ` Shakeel Butt
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=dhq4sgkuyix6le66i6usodzs6pqyturvl7awmzuyfzpgbqg5x7@xxocuq2wmbvd \
--to=shakeel.butt@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=gthelen@google.com \
--cc=hannes@cmpxchg.org \
--cc=kernel-team@meta.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=muchun.song@linux.dev \
--cc=roman.gushchin@linux.dev \
--cc=tjmercier@google.com \
/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