Lines Matching refs:mm

453 static bool __try_to_set_owner(struct task_struct *tsk, struct mm_struct *mm)  in __try_to_set_owner()  argument
458 if (likely(tsk->mm == mm)) { in __try_to_set_owner()
461 WRITE_ONCE(mm->owner, tsk); in __try_to_set_owner()
462 lru_gen_migrate_mm(mm); in __try_to_set_owner()
469 static bool try_to_set_owner(struct task_struct *g, struct mm_struct *mm) in try_to_set_owner() argument
474 struct mm_struct *t_mm = READ_ONCE(t->mm); in try_to_set_owner()
475 if (t_mm == mm) { in try_to_set_owner()
476 if (__try_to_set_owner(t, mm)) in try_to_set_owner()
488 void mm_update_next_owner(struct mm_struct *mm) in mm_update_next_owner() argument
496 if (mm->owner != p) in mm_update_next_owner()
503 if (atomic_read(&mm->mm_users) <= 1) { in mm_update_next_owner()
504 WRITE_ONCE(mm->owner, NULL); in mm_update_next_owner()
513 if (try_to_set_owner(g, mm)) in mm_update_next_owner()
520 if (try_to_set_owner(g, mm)) in mm_update_next_owner()
527 if (atomic_read(&mm->mm_users) <= 1) in mm_update_next_owner()
531 if (try_to_set_owner(g, mm)) in mm_update_next_owner()
540 WRITE_ONCE(mm->owner, NULL); in mm_update_next_owner()
553 struct mm_struct *mm = current->mm; in exit_mm() local
555 exit_mm_release(current, mm); in exit_mm()
556 if (!mm) in exit_mm()
558 mmap_read_lock(mm); in exit_mm()
559 mmgrab_lazy_tlb(mm); in exit_mm()
560 BUG_ON(mm != current->active_mm); in exit_mm()
575 current->mm = NULL; in exit_mm()
577 enter_lazy_tlb(mm, current); in exit_mm()
580 mmap_read_unlock(mm); in exit_mm()
581 mm_update_next_owner(mm); in exit_mm()
582 mmput(mm); in exit_mm()
927 if (tsk->mm) in do_exit()
928 setmax_mm_hiwater_rss(&tsk->signal->maxrss, tsk->mm); in do_exit()