Mateusz Guzik <mjgu...@gmail.com> writes: > On 2/14/23, Jan Beich <jbe...@freebsd.org> wrote: > >> Steffen Nurpmeso <stef...@sdaoden.eu> writes: >> >>> |+ if (all_flag) { >>> |+ cpus = sysconf(_SC_NPROCESSORS_ONLN); >>> >>> is not compatible -- note i like the FreeBSD way better, and maybe >>> someone should make a bug report even. >>> >>> #?0|kent:$ getconf -a|grep NPROC >>> _NPROCESSORS_CONF 8 >>> _NPROCESSORS_ONLN 4 >> >> See also https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230330 >> >> $ cpuset -l 2-5 -- getconf -a | fgrep _NPROC >> _NPROCESSORS_CONF: 8 >> _NPROCESSORS_ONLN: 4 >> > > As I mentioned previously in the thread, on linux these *don't* react > to cpusets (or tasksets in linux parlance): > > $ getconf -a | grep _NPROC > _NPROCESSORS_CONF 4 > _NPROCESSORS_ONLN 4 > $ taskset --cpu-list 0 getconf -a | grep _NPROC > _NPROCESSORS_CONF 4 > _NPROCESSORS_ONLN 4 > > consequently the patch proposed in the bz would introduce an > incompatibility with linux
I've used kern.smp.cpus in old patches but found musl more practical. _SC_NPROCESSORS_ONLN is often used as a default number of jobs. glibc: - /sys/devices/system/cpu/online - /proc/stat - sched_getaffinity musl: - sched_getaffinity bionic: - /sys/devices/system/cpu/online - /proc/stat (Android < 7)