diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/fork.c | 6 | ||||
| -rw-r--r-- | kernel/sched/core.c | 16 | ||||
| -rw-r--r-- | kernel/sched/sched.h | 26 |
3 files changed, 24 insertions, 24 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 9d9afe453ef1..74bc7c9f1bb3 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -955,9 +955,9 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node) #endif #ifdef CONFIG_SCHED_MM_CID - tsk->mm_cid = MM_CID_UNSET; - tsk->last_mm_cid = MM_CID_UNSET; - tsk->mm_cid_active = 0; + tsk->mm_cid.cid = MM_CID_UNSET; + tsk->mm_cid.last_cid = MM_CID_UNSET; + tsk->mm_cid.active = 0; #endif return tsk; diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 11a173596e0d..b1aa7d1055ac 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -10376,14 +10376,14 @@ void sched_mm_cid_exit_signals(struct task_struct *t) { struct mm_struct *mm = t->mm; - if (!mm || !t->mm_cid_active) + if (!mm || !t->mm_cid.active) return; guard(preempt)(); - t->mm_cid_active = 0; - if (t->mm_cid != MM_CID_UNSET) { - cpumask_clear_cpu(t->mm_cid, mm_cidmask(mm)); - t->mm_cid = MM_CID_UNSET; + t->mm_cid.active = 0; + if (t->mm_cid.cid != MM_CID_UNSET) { + cpumask_clear_cpu(t->mm_cid.cid, mm_cidmask(mm)); + t->mm_cid.cid = MM_CID_UNSET; } } @@ -10402,14 +10402,14 @@ void sched_mm_cid_after_execve(struct task_struct *t) return; guard(preempt)(); - t->mm_cid_active = 1; + t->mm_cid.active = 1; mm_cid_select(t); } void sched_mm_cid_fork(struct task_struct *t) { - WARN_ON_ONCE(!t->mm || t->mm_cid != MM_CID_UNSET); - t->mm_cid_active = 1; + WARN_ON_ONCE(!t->mm || t->mm_cid.cid != MM_CID_UNSET); + t->mm_cid.active = 1; } #endif /* CONFIG_SCHED_MM_CID */ diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index bf227c27b889..a17f04f075e1 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -3549,8 +3549,8 @@ static inline void init_sched_mm_cid(struct task_struct *t) return; /* Preset last_mm_cid */ - max_cid = min_t(int, READ_ONCE(mm->nr_cpus_allowed), atomic_read(&mm->mm_users)); - t->last_mm_cid = max_cid - 1; + max_cid = min_t(int, READ_ONCE(mm->mm_cid.nr_cpus_allowed), atomic_read(&mm->mm_users)); + t->mm_cid.last_cid = max_cid - 1; } static inline bool __mm_cid_get(struct task_struct *t, unsigned int cid, unsigned int max_cids) @@ -3561,8 +3561,8 @@ static inline bool __mm_cid_get(struct task_struct *t, unsigned int cid, unsigne return false; if (cpumask_test_and_set_cpu(cid, mm_cidmask(mm))) return false; - t->mm_cid = t->last_mm_cid = cid; - __this_cpu_write(mm->pcpu_cid->cid, cid); + t->mm_cid.cid = t->mm_cid.last_cid = cid; + __this_cpu_write(mm->mm_cid.pcpu->cid, cid); return true; } @@ -3571,14 +3571,14 @@ static inline bool mm_cid_get(struct task_struct *t) struct mm_struct *mm = t->mm; unsigned int max_cids; - max_cids = min_t(int, READ_ONCE(mm->nr_cpus_allowed), atomic_read(&mm->mm_users)); + max_cids = min_t(int, READ_ONCE(mm->mm_cid.nr_cpus_allowed), atomic_read(&mm->mm_users)); /* Try to reuse the last CID of this task */ - if (__mm_cid_get(t, t->last_mm_cid, max_cids)) + if (__mm_cid_get(t, t->mm_cid.last_cid, max_cids)) return true; /* Try to reuse the last CID of this mm on this CPU */ - if (__mm_cid_get(t, __this_cpu_read(mm->pcpu_cid->cid), max_cids)) + if (__mm_cid_get(t, __this_cpu_read(mm->mm_cid.pcpu->cid), max_cids)) return true; /* Try the first zero bit in the cidmask. */ @@ -3601,15 +3601,15 @@ static inline void mm_cid_select(struct task_struct *t) static inline void switch_mm_cid(struct task_struct *prev, struct task_struct *next) { - if (prev->mm_cid_active) { - if (prev->mm_cid != MM_CID_UNSET) - cpumask_clear_cpu(prev->mm_cid, mm_cidmask(prev->mm)); - prev->mm_cid = MM_CID_UNSET; + if (prev->mm_cid.active) { + if (prev->mm_cid.cid != MM_CID_UNSET) + cpumask_clear_cpu(prev->mm_cid.cid, mm_cidmask(prev->mm)); + prev->mm_cid.cid = MM_CID_UNSET; } - if (next->mm_cid_active) { + if (next->mm_cid.active) { mm_cid_select(next); - rseq_sched_set_task_mm_cid(next, next->mm_cid); + rseq_sched_set_task_mm_cid(next, next->mm_cid.cid); } } |
