diff options
author | Linux Build Service Account <lnxbuild@quicinc.com> | 2018-01-09 15:40:38 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-01-09 15:40:38 -0800 |
commit | 20ab01289c7807a88a38f67e98ee683984aec1e1 (patch) | |
tree | 77c9054d3402295fc09e34cff844fdad0c4241ab /kernel/sched | |
parent | 335cf653471a1d8711265d359adbb779aff33f84 (diff) | |
parent | 24a7d0a6218e5d15f701f1c5cc833c707107fc6f (diff) |
Merge "sched: core: Exclude isolated cpus in sched_getaffinity cpumask"
Diffstat (limited to 'kernel/sched')
-rw-r--r-- | kernel/sched/core.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index cec7fe8059a1..13a64488c3d2 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4914,6 +4914,15 @@ long sched_getaffinity(pid_t pid, struct cpumask *mask) raw_spin_lock_irqsave(&p->pi_lock, flags); cpumask_and(mask, &p->cpus_allowed, cpu_active_mask); + + /* + * The userspace tasks are forbidden to run on + * isolated CPUs. So exclude isolated CPUs from + * the getaffinity. + */ + if (!(p->flags & PF_KTHREAD)) + cpumask_andnot(mask, mask, cpu_isolated_mask); + raw_spin_unlock_irqrestore(&p->pi_lock, flags); out_unlock: |