Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problems in mounting cpuset filesystem #45

Open
gdmsl opened this issue Sep 23, 2022 · 3 comments
Open

Problems in mounting cpuset filesystem #45

gdmsl opened this issue Sep 23, 2022 · 3 comments

Comments

@gdmsl
Copy link

gdmsl commented Sep 23, 2022

Hi everyone. I am trying to use cpuset but I cannot make it work since it will not mount the cpuset filesystem. I am using ArchLinux (see below) and I am having the same problem both with the cpuset and the cpuset-git package.

The error reported is:

❯ sudo cset shield -c 3 -k on
mount: /cpusets: none already mounted or mount point busy.
       dmesg(1) may have more information after failed mount system call.
cset: **> mount of cpuset filesystem failed, do you have permission?

My system is running ArchLinux

❯ uname -a
Linux tachanka 5.19.10-arch1-1 #1 SMP PREEMPT_DYNAMIC Tue, 20 Sep 2022 15:17:59 +0000 x86_64 GNU/Linux
@Werkov
Copy link
Member

Werkov commented Sep 27, 2022

Thanks for the report. This looks like some of your systemd units use cpuset controller (you would see cpuset in /sys/fs/cgroup/cgroup.subtree_control) and hence it's not available for the shielding to mount it on v1. The cpuset tools won't work well with the unified (v2) hierarchy.

Despite slightly different error message, I'd consider this a duplicate of #45. (edit: #40 ofc)
@gdmsl maybe the suggested use of systemd directives is useful to you?

@gdmsl
Copy link
Author

gdmsl commented Oct 10, 2022

Hi. Sorry for the late answer. Not really (or I am not understanding it). I was trying to setup benchmarks for some scientific code following this set of instructions. But yes, I think it is a duplicate of #40 . Thanks!

@Werkov
Copy link
Member

Werkov commented Oct 11, 2022

cset shield takes most of tasks and moves them to a specific cpuset cgroup, so that they're bound to certain set of CPUs and the remaining CPUs are free (shielded) from interference. You can move most of the regular systemd workload by applying AllowedCPUs= configuration to 1st level slices and then create your own slice/service/scope that uses complementary CPUs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants