mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-22 22:51:37 +00:00
mm: add new mmgrab() helper
Apart from adding the helper function itself, the rest of the kernel is converted mechanically using: git grep -l 'atomic_inc.*mm_count' | xargs sed -i 's/atomic_inc(&\(.*\)->mm_count);/mmgrab\(\1\);/' git grep -l 'atomic_inc.*mm_count' | xargs sed -i 's/atomic_inc(&\(.*\)\.mm_count);/mmgrab\(\&\1\);/' This is needed for a later patch that hooks into the helper, but might be a worthwhile cleanup on its own. (Michal Hocko provided most of the kerneldoc comment.) Link: http://lkml.kernel.org/r/20161218123229.22952-1-vegard.nossum@oracle.com Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com> Acked-by: Michal Hocko <mhocko@suse.com> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
522b837c67
commit
f1f1007644
40 changed files with 65 additions and 43 deletions
|
@ -653,7 +653,7 @@ static void mark_oom_victim(struct task_struct *tsk)
|
|||
|
||||
/* oom_mm is bound to the signal struct life time. */
|
||||
if (!cmpxchg(&tsk->signal->oom_mm, NULL, mm))
|
||||
atomic_inc(&tsk->signal->oom_mm->mm_count);
|
||||
mmgrab(tsk->signal->oom_mm);
|
||||
|
||||
/*
|
||||
* Make sure that the task is woken up from uninterruptible sleep
|
||||
|
@ -870,7 +870,7 @@ static void oom_kill_process(struct oom_control *oc, const char *message)
|
|||
|
||||
/* Get a reference to safely compare mm after task_unlock(victim) */
|
||||
mm = victim->mm;
|
||||
atomic_inc(&mm->mm_count);
|
||||
mmgrab(mm);
|
||||
/*
|
||||
* We should send SIGKILL before setting TIF_MEMDIE in order to prevent
|
||||
* the OOM victim from depleting the memory reserves from the user
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue