Due to the semantics of memory.high enforcement i.e. throttle the workload without oom-kill, we are trying to use it for right sizing the workloads in our production environment. However we observed the mechanism fails for some specific applications which does bug chunck of allocations in a single syscall. The reason behind this failure is due to the limitation of the memory.high enforcement's current implementation. This patch series solves this issue by enforcing the memory.high synchronously and making it more robust. Shakeel Butt (4): memcg: refactor mem_cgroup_oom memcg: unify force charging conditions selftests: memcg: test high limit for single entry allocation memcg: synchronously enforce memory.high include/linux/page_counter.h | 10 + mm/memcontrol.c | 175 ++++++++++-------- mm/page_counter.c | 59 ++++-- tools/testing/selftests/cgroup/cgroup_util.c | 15 +- tools/testing/selftests/cgroup/cgroup_util.h | 1 + .../selftests/cgroup/test_memcontrol.c | 78 ++++++++ 6 files changed, 240 insertions(+), 98 deletions(-) -- 2.35.1.265.g69c8d7142f-goog