From: Kirill Tkhai <ktk...@virtuozzo.com> Fill mask using virtual cpus which are enumerated from 0 to num_online_vcpus()-1.
Just in pair to /proc/cpuinfo and sched_setaffinity(). https://jira.sw.ru/browse/PSBM-25367 Signed-off-by: Kirill Tkhai <ktk...@parallels.com> Acked-by: Vladimir Davydov <vdavy...@parallels.com> An addition by khorenko@: "nproc" utility works via sched_getaffinity(). Acked-by: Cyrill Gorcunov <gorcu...@openvz.org> Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com> https://jira.sw.ru/browse/PSBM-133986 (cherry picked from commit 83352c7f8f4b98fd4dbf5f0de00681b6cdc11d7c) Signed-off-by: Alexander Mikhalitsyn <alexander.mikhalit...@virtuozzo.com> --- kernel/sched/core.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 064482744ac7..291f293fb00a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -7848,6 +7848,12 @@ long sched_getaffinity(pid_t pid, struct cpumask *mask) if (retval) goto out_unlock; + if (!ve_is_super(get_exec_env())) { + cpumask_clear(mask); + bitmap_fill(cpumask_bits(mask), num_online_vcpus()); + goto out_unlock; + } + raw_spin_lock_irqsave(&p->pi_lock, flags); cpumask_and(mask, &p->cpus_mask, cpu_active_mask); raw_spin_unlock_irqrestore(&p->pi_lock, flags); -- 2.31.1 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel