Date: Wed, 08 Feb 2023 21:27:36 +0100 From: Steffen Nurpmeso <steffen@sdaoden.eu> To: Mateusz Guzik <mjg@FreeBSD.org> Cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: 48bfd3597654 - main - Add nproc(1) Message-ID: <20230208202736.L7hpB%steffen@sdaoden.eu> In-Reply-To: <202302081947.318Jlbt6052826@gitrepo.freebsd.org> References: <202302081947.318Jlbt6052826@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Mateusz Guzik wrote in <202302081947.318Jlbt6052826@gitrepo.freebsd.org>: ... |URL: https://cgit.FreeBSD.org/src/commit/?id=48bfd3597654490cdc43bf0f591\ |a539d3a28b590 ... | Add nproc(1) Hey! Great. (NPROC is mentioned in POSIX for environment variables, as well as a make macro that did not make it, .. and nproc(1) is commonly used on Linux it seems.) Thanks. | This program prints the number of CPU threads it can run on, while | respecting cpusets (or not, depending on switches). | | It aims to be compatible with nproc as found in GNU coreutils. That, "however", ... |+ 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 #?0|kent:$ nproc 4 #?0|kent:$ nproc --all 8 #?0|kent:$ |+ if (cpus == -1) |+ err(1, "sysconf"); |+ } else { |+ CPU_ZERO(&mask); |+ if (cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, -1, |+ sizeof(mask), &mask) != 0) |+ err(1, "cpuset_getaffinity"); |+ cpus = CPU_COUNT(&mask); That is the right thing to do, imho! Thank you. --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20230208202736.L7hpB%steffen>