Re: [PATCH v2 2/5] cgroup: Account for memory_recursiveprot in test_memcg_low()

From: David Vernet
Date: Thu Apr 28 2022 - 21:03:43 EST


Hi Michal,

On Wed, Apr 27, 2022 at 04:09:28PM +0200, Michal Koutný wrote:
> Hello David.
>
> On Sat, Apr 23, 2022 at 08:56:19AM -0700, David Vernet <void@xxxxxxxxxxxxx> wrote:
> > This unfortunately broke the memcg tests, which asserts that a sibling
> > that experienced reclaim but had a memory.low value of 0, would not
> > observe any memory.low events. This patch updates test_memcg_low() to
> > account for the new behavior introduced by memory_recursiveprot.
>
> I think the test is correct, there should be no (not even recursive)
> protection in this particular case (when the remaining siblings consume
> all of parental protection).
>
> This should be fixed in the kernel (see also [1], no updates from me yet
> :-/)
>
> Michal
>
> [1] https://lore.kernel.org/lkml/20220322182248.29121-1-mkoutny@xxxxxxxx/
>

I see, thanks for sharing that context. I think I see your point about the
implementation of the reclaim mechanism potentially overcounting, but my
interpretation of the rest of that discussion with Roman is that we haven't
yet decided whether we don't want to propagate memory.low events from
children cgroups with memory.low == 0. Or at the very least, some more
justification was requested on why not counting such events was prudent.

Would you be ok with merging this patch so that the cgroup selftests can
pass again based on the current behavior of the kernel, and we can then
revert the changes to test_memcg_low() later on if and when we decide that
we don't want to propagate memory.low events for memory.low == 0 children?

Thanks,
David