My specific scenario is the following. I launch a docker container with a specific cpuset:
docker run --cpuset-cpus="0-2" # ...
inside that container I run a shell script as the entry point and that shell script will run
make at some point. I would like to figure out what a good number of jobs (
-j) would be. I could of course pass the the number of allocated CPUs through the environment, but an automatic way to detect it would be much preferred.
I know I can use
taskset -c -p $$ or
cat /proc/self/status | grep Cpus_allowed_list to retrieve the
Cpus_allowed for the current process, but I do not know how to retrieve the actual number of allowed CPUs. I would like to avoid parsing the output of those commands or fiddling with the
Cpus_allowed mask, but will do it, when out of options.