include/linux/freezer.h | 2 ++ kernel/freezer.c | 13 ++++++++++++- mm/oom_kill.c | 20 +++++++++++++------- 3 files changed, 27 insertions(+), 8 deletions(-)
This patch series focuses on optimizing victim process thawing and refining the traversal order of the OOM reaper. Since __thaw_task() is used to thaw a single thread of the victim, thawing only one thread cannot guarantee the exit of the OOM victim when it is frozen. Patch 1 thaw the entire process of the OOM victim to ensure that OOM victims are able to terminate themselves. Even if the oom_reaper is delayed, patch 2 is still beneficial for reaping processes with a large address space footprint, and it also greatly improves process_mrelease. --- v9 -> v10: - Just update the changelog. [15] [16] v8 -> v9: - Replace thaw_oom_process with thaw_process. [13] - Use tsk_is_oom_victim() to check whether a task is an OOM victim in freezing_slow_path(). [14] v7 -> v8: - Introduce thaw_oom_process() for thawing OOM victims. [12] - Use RCU protection for thread traversal in thaw_oom_process. v6 -> v7: - Thawing the victim process to ensure that it can terminate on its own. [10] - Since the delay reaper is no longer skipped, I'm not sure whether patch 2 will still be accepted. Revise the Changelog for patch 2. [11] - Remove report tags v5 -> v6: - Use mas_for_each_rev() for VMA traversal [6] - Simplify the judgment of whether to delay in queue_oom_reaper() [7] - Refine changelog to better capture the essence of the changes [8] - Use READ_ONCE(tsk->frozen) instead of checking mm and additional checks inside for_each_process(), as it is sufficient [9] - Add report tags because fengbaopeng and tianxiaobin reported the high load issue of the reaper v4 -> v5: - Detect frozen state directly, avoid special futex handling. [3] - Use mas_find_rev() for VMA traversal to avoid skipping entries. [4] - Only check should_delay_oom_reap() in queue_oom_reaper(). [5] v3 -> v4: - Renamed functions and parameters for clarity. [2] - Added should_delay_oom_reap() for OOM reap decisions. - Traverse maple tree in reverse for improved behavior. v2 -> v3: - Fixed Subject prefix error. v1 -> v2: - Check robust_list for all threads, not just one. [1] Reference: [1] https://lore.kernel.org/linux-mm/u3mepw3oxj7cywezna4v72y2hvyc7bafkmsbirsbfuf34zpa7c@b23sc3rvp2gp/ [2] https://lore.kernel.org/linux-mm/87cy99g3k6.ffs@tglx/ [3] https://lore.kernel.org/linux-mm/aKRWtjRhE_HgFlp2@tiehlicka/ [4] https://lore.kernel.org/linux-mm/26larxehoe3a627s4fxsqghriwctays4opm4hhme3uk7ybjc5r@pmwh4s4yv7lm/ [5] https://lore.kernel.org/linux-mm/d5013a33-c08a-44c5-a67f-9dc8fd73c969@lucifer.local/ [6] https://lore.kernel.org/linux-mm/nwh7gegmvoisbxlsfwslobpbqku376uxdj2z32owkbftvozt3x@4dfet73fh2yy/ [7] https://lore.kernel.org/linux-mm/af4edeaf-d3c9-46a9-a300-dbaf5936e7d6@lucifer.local/ [8] https://lore.kernel.org/linux-mm/aK71W1ITmC_4I_RY@tiehlicka/ [9] https://lore.kernel.org/linux-mm/jzzdeczuyraup2zrspl6b74muf3bly2a3acejfftcldfmz4ekk@s5mcbeim34my/ [10] https://lore.kernel.org/linux-mm/aLWmf6qZHTA0hMpU@tiehlicka/ [11] https://lore.kernel.org/linux-mm/aLVOICSkyvVRKD94@tiehlicka/ [12] https://lore.kernel.org/linux-mm/aLg0QZQ5kXNJgDMF@tiehlicka/ [13] https://lore.kernel.org/linux-mm/aL_wLqsy7nzP_bRF@tiehlicka/ [14] https://lore.kernel.org/linux-mm/aMAzkQQ4XAFh9xlm@tiehlicka/ [15] https://lore.kernel.org/linux-mm/aMJ619kjFm00c4OP@tiehlicka/ [16] https://lore.kernel.org/linux-mm/aMGWAg5jIitYCXdZ@tiehlicka/ The earlier post: v9: https://lore.kernel.org/linux-mm/20250910143726.19905-1-zhongjinji@honor.com/ v8: https://lore.kernel.org/linux-mm/20250909090659.26400-1-zhongjinji@honor.com/ v7: https://lore.kernel.org/linux-mm/20250903092729.10611-1-zhongjinji@honor.com/ v6: https://lore.kernel.org/linux-mm/20250829065550.29571-1-zhongjinji@honor.com/ v5: https://lore.kernel.org/linux-mm/20250825133855.30229-1-zhongjinji@honor.com/ v4: https://lore.kernel.org/linux-mm/20250814135555.17493-1-zhongjinji@honor.com/ v3: https://lore.kernel.org/linux-mm/20250804030341.18619-1-zhongjinji@honor.com/ v2: https://lore.kernel.org/linux-mm/20250801153649.23244-1-zhongjinji@honor.com/ v1: https://lore.kernel.org/linux-mm/20250731102904.8615-1-zhongjinji@honor.com/ zhongjinji (2): mm/oom_kill: Thaw the entire OOM victim process mm/oom_kill: The OOM reaper traverses the VMA maple tree in reverse order include/linux/freezer.h | 2 ++ kernel/freezer.c | 13 ++++++++++++- mm/oom_kill.c | 20 +++++++++++++------- 3 files changed, 27 insertions(+), 8 deletions(-) -- 2.17.1
© 2016 - 2025 Red Hat, Inc.