From: Johannes Weiner <hannes@cmpxchg.org>
To: Waiman Long <llong@redhat.com>
Cc: "Tejun Heo" <tj@kernel.org>, "Michal Hocko" <mhocko@kernel.org>,
"Roman Gushchin" <roman.gushchin@linux.dev>,
"Shakeel Butt" <shakeel.butt@linux.dev>,
"Muchun Song" <muchun.song@linux.dev>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Michal Koutný" <mkoutny@suse.com>,
"Shuah Khan" <shuah@kernel.org>,
linux-kernel@vger.kernel.org, cgroups@vger.kernel.org,
linux-mm@kvack.org, linux-kselftest@vger.kernel.org
Subject: Re: [PATCH v2 1/2] memcg: Don't generate low/min events if either low/min or elow/emin is 0
Date: Fri, 4 Apr 2025 15:38:02 -0400 [thread overview]
Message-ID: <20250404193802.GA373778@cmpxchg.org> (raw)
In-Reply-To: <c4294852-cc94-401e-8335-02741005e5d7@redhat.com>
On Fri, Apr 04, 2025 at 02:55:35PM -0400, Waiman Long wrote:
> On 4/4/25 2:13 PM, Johannes Weiner wrote:
> > * Waiman points out that the weirdness is seeing low events without
> > having a low configured. Eh, this isn't really true with recursive
> > propagation; you may or may not have an elow depending on parental
> > configuration and sibling behavior.
> >
> Do you mind if we just don't update the low event count if low isn't
> set, but leave the rest the same like
What's the motivation for doing anything beyond the skip-on-!usage?
> @@ -659,21 +659,25 @@ static inline bool mem_cgroup_unprotected(struct
> mem_cgro>
> static inline bool mem_cgroup_below_low(struct mem_cgroup *target,
> struct mem_cgroup *memcg)
> {
> + unsigned long elow;
> +
> if (mem_cgroup_unprotected(target, memcg))
> return false;
>
> - return READ_ONCE(memcg->memory.elow) >=
> - page_counter_read(&memcg->memory);
> + elow = READ_ONCE(memcg->memory.elow);
> + return elow && (page_counter_read(&memcg->memory) <= elow);
> }
>
> static inline bool mem_cgroup_below_min(struct mem_cgroup *target,
> struct mem_cgroup *memcg)
> {
> + unsigned long emin;
> +
> if (mem_cgroup_unprotected(target, memcg))
> return false;
>
> - return READ_ONCE(memcg->memory.emin) >=
> - page_counter_read(&memcg->memory);
> + emin = READ_ONCE(memcg->memory.emin);
> + return emin && (page_counter_read(&memcg->memory) <= emin);
> }
This still redefines the empty case to mean excess. That's a quirk I
would have liked to avoid. I don't see why you would need it?
> @@ -5919,7 +5923,8 @@ static void shrink_node_memcgs(pg_data_t *pgdat,
> struct s>
> sc->memcg_low_skipped = 1;
> continue;
> }
> - memcg_memory_event(memcg, MEMCG_LOW);
> + if (memcg->memory.low)
> + memcg_memory_event(memcg, MEMCG_LOW);
That's not right. In setups where protection comes from the parent, no
breaches would ever be counted.
next prev parent reply other threads:[~2025-04-04 19:38 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-04 1:24 [PATCH v2 1/2] memcg: Don't generate low/min events if either low/min or elow/emin is 0 Waiman Long
2025-04-04 1:24 ` [PATCH v2 2/2] selftests: memcg: Increase error tolerance of child memory.current check in test_memcg_protection() Waiman Long
2025-04-04 17:12 ` [PATCH v2 1/2] memcg: Don't generate low/min events if either low/min or elow/emin is 0 Tejun Heo
2025-04-04 17:25 ` Waiman Long
2025-04-04 18:13 ` Johannes Weiner
2025-04-04 18:55 ` Waiman Long
2025-04-04 19:38 ` Johannes Weiner [this message]
2025-04-05 18:52 ` Waiman Long
2025-04-04 18:26 ` Michal Koutný
2025-04-04 19:01 ` Waiman Long
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=20250404193802.GA373778@cmpxchg.org \
--to=hannes@cmpxchg.org \
--cc=akpm@linux-foundation.org \
--cc=cgroups@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=llong@redhat.com \
--cc=mhocko@kernel.org \
--cc=mkoutny@suse.com \
--cc=muchun.song@linux.dev \
--cc=roman.gushchin@linux.dev \
--cc=shakeel.butt@linux.dev \
--cc=shuah@kernel.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.