diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 8d509a10decdc6fd3c6035d56e5d889816f4d62b..71a0be7051a9be608dd136fcd9ff015265ff4971 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -65,6 +65,7 @@ #include #include #include +#include #include "internal.h" #include #include @@ -2235,6 +2236,7 @@ static void high_work_func(struct work_struct *work) void mem_cgroup_handle_over_high(void) { unsigned long usage, high, clamped_high; + unsigned long pflags; unsigned long penalty_jiffies, overage; unsigned int nr_pages = current->memcg_nr_pages_over_high; struct mem_cgroup *memcg; @@ -2307,7 +2309,9 @@ void mem_cgroup_handle_over_high(void) * schedule_timeout_killable sets TASK_KILLABLE). This means we don't * need to account for any ill-begotten jiffies to pay them off later. */ + psi_memstall_enter(&pflags); schedule_timeout_killable(penalty_jiffies); + psi_memstall_leave(&pflags); out: css_put(&memcg->css);