Lines Matching refs:mm
1499 rss = get_mm_rss(p->mm); in task_nr_scan_windows()
2260 !cur->mm)) in task_numa_compare()
2708 p->mm->numa_next_scan = jiffies + in update_task_scan_period()
2893 seq = READ_ONCE(p->mm->numa_scan_seq); in task_numa_placement()
3063 if (tsk->mm == current->mm) in task_numa_group()
3163 if (!p->mm) in task_numa_fault()
3241 WRITE_ONCE(p->mm->numa_scan_seq, READ_ONCE(p->mm->numa_scan_seq) + 1); in reset_ptenuma_scan()
3242 p->mm->numa_scan_offset = 0; in reset_ptenuma_scan()
3245 static bool vma_is_accessed(struct mm_struct *mm, struct vm_area_struct *vma) in vma_is_accessed() argument
3254 if ((READ_ONCE(current->mm->numa_scan_seq) - vma->numab_state->start_scan_seq) < 2) in vma_is_accessed()
3265 if (mm->numa_scan_offset > vma->vm_start) { in vma_is_accessed()
3266 trace_sched_skip_vma_numa(mm, vma, NUMAB_SKIP_IGNORE_PID); in vma_is_accessed()
3275 if (READ_ONCE(mm->numa_scan_seq) > in vma_is_accessed()
3292 struct mm_struct *mm = p->mm; in task_numa_work() local
3325 if (!mm->numa_next_scan) { in task_numa_work()
3326 mm->numa_next_scan = now + in task_numa_work()
3333 migrate = mm->numa_next_scan; in task_numa_work()
3343 if (!try_cmpxchg(&mm->numa_next_scan, &migrate, next_scan)) in task_numa_work()
3359 if (!mmap_read_trylock(mm)) in task_numa_work()
3370 start = mm->numa_scan_offset; in task_numa_work()
3371 vma_iter_init(&vmi, mm, start); in task_numa_work()
3383 trace_sched_skip_vma_numa(mm, vma, NUMAB_SKIP_UNSUITABLE); in task_numa_work()
3395 trace_sched_skip_vma_numa(mm, vma, NUMAB_SKIP_SHARED_RO); in task_numa_work()
3404 trace_sched_skip_vma_numa(mm, vma, NUMAB_SKIP_INACCESSIBLE); in task_numa_work()
3421 vma->numab_state->start_scan_seq = mm->numa_scan_seq; in task_numa_work()
3435 vma->numab_state->prev_scan_seq = mm->numa_scan_seq - 1; in task_numa_work()
3442 if (mm->numa_scan_seq && time_before(jiffies, in task_numa_work()
3444 trace_sched_skip_vma_numa(mm, vma, NUMAB_SKIP_SCAN_DELAY); in task_numa_work()
3449 if (mm->numa_scan_seq && in task_numa_work()
3458 if (vma->numab_state->prev_scan_seq == mm->numa_scan_seq) { in task_numa_work()
3459 mm->numa_scan_offset = vma->vm_end; in task_numa_work()
3460 trace_sched_skip_vma_numa(mm, vma, NUMAB_SKIP_SEQ_COMPLETED); in task_numa_work()
3468 if (!vma_pids_forced && !vma_is_accessed(mm, vma)) { in task_numa_work()
3470 trace_sched_skip_vma_numa(mm, vma, NUMAB_SKIP_PID_INACTIVE); in task_numa_work()
3500 vma->numab_state->prev_scan_seq = mm->numa_scan_seq; in task_numa_work()
3528 mm->numa_scan_offset = start; in task_numa_work()
3531 mmap_read_unlock(mm); in task_numa_work()
3548 struct mm_struct *mm = p->mm; in init_numa_balancing() local
3550 if (mm) { in init_numa_balancing()
3551 mm_users = atomic_read(&mm->mm_users); in init_numa_balancing()
3553 mm->numa_next_scan = jiffies + msecs_to_jiffies(sysctl_numa_balancing_scan_delay); in init_numa_balancing()
3554 mm->numa_scan_seq = 0; in init_numa_balancing()
3558 p->numa_scan_seq = mm ? mm->numa_scan_seq : 0; in init_numa_balancing()
3582 if (mm) { in init_numa_balancing()
3603 if (!curr->mm || (curr->flags & (PF_EXITING | PF_KTHREAD)) || work->next != work) in task_tick_numa()
3620 if (!time_before(jiffies, curr->mm->numa_next_scan)) in task_tick_numa()
3633 if (!p->mm || !p->numa_faults || (p->flags & PF_EXITING)) in update_scan_period()