• David Vernet's avatar
    cgroup: account for memory_recursiveprot in test_memcg_low() · cdc69458
    David Vernet authored
    The test_memcg_low() testcase in test_memcontrol.c verifies the expected
    behavior of groups using the memory.low knob.  Part of the testcase
    verifies that a group with memory.low that experiences reclaim due to
    memory pressure elsewhere in the system, observes memory.events.low events
    as a result of that reclaim.
    
    In commit 8a931f80 ("mm: memcontrol: recursive memory.low
    protection"), the memory controller was updated to propagate memory.low
    and memory.min protection from a parent group to its children via a
    configurable memory_recursiveprot mount option.  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.
    
    So as to make the test resilient to multiple configurations, the patch
    also adds a new proc_mount_contains() helper that checks for a string in
    /proc/mounts, and is used to toggle behavior based on whether the default
    memory_recursiveprot was present.
    
    Link: https://lkml.kernel.org/r/20220423155619.3669555-3-void@manifault.comSigned-off-by: default avatarDavid Vernet <void@manifault.com>
    Acked-by: default avatarRoman Gushchin <roman.gushchin@linux.dev>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Shakeel Butt <shakeelb@google.com>
    Cc: Tejun Heo <tj@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    cdc69458
cgroup_util.c 11.4 KB