linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2/2] memcg, oom: do not wake up memcg_oom_waitq if waitqueue is empty
@ 2023-09-22  7:05 Haifeng Xu
  2023-09-22 23:22 ` Roman Gushchin
  0 siblings, 1 reply; 3+ messages in thread
From: Haifeng Xu @ 2023-09-22  7:05 UTC (permalink / raw)
  To: mhocko; +Cc: hannes, roman.gushchin, shakeelb, cgroups, linux-mm, Haifeng Xu

Only when memcg oom killer is disabled, the task which triggers memecg
oom handling will sleep on a waitqueue. Except this case, the waitqueue
is empty though under_oom is true. There is no need to step into wake
up path when resolve the oom situation. So add a check that whether the
waitqueue is empty.

Signed-off-by: Haifeng Xu <haifeng.xu@shopee.com>
---
 mm/memcontrol.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 0b6ed63504ca..2bb98ff5be3d 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -1918,7 +1918,7 @@ static void memcg_oom_recover(struct mem_cgroup *memcg)
 	 * achieved by invoking mem_cgroup_mark_under_oom() before
 	 * triggering notification.
 	 */
-	if (memcg && memcg->under_oom)
+	if (memcg && memcg->under_oom && !list_empty(&memcg_oom_waitq.head))
 		__wake_up(&memcg_oom_waitq, TASK_NORMAL, 0, memcg);
 }
 
-- 
2.25.1



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-09-23  8:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-22  7:05 [PATCH 2/2] memcg, oom: do not wake up memcg_oom_waitq if waitqueue is empty Haifeng Xu
2023-09-22 23:22 ` Roman Gushchin
2023-09-23  8:01   ` Haifeng Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox