[1/4] batman-adv: Use nproc to get number of available processors
Commit Message
The current way of getting the number of cpus uses different assumptions which
may or may not be true in the future:
* /proc/cpuinfo exists
* cpuinfo provides a list of all processing units
* all processing units are available for the current process and its childs
* the word 'processor' is only used in the cpu index and 'model name' lines
* cpu index is strict monotonic increasing
* lowest cpu index is 0 and highest cpu index is n-1 (n is the number of
processing units)
At least the number of available processing units for the current process can
be shown to be wrong. on current systems by assigning a singe cpu to a process
and its childs:
$ numactl --physcpubind=0 nproc
1
$ numactl --physcpubind=0 sh -c 'NUM_CPUS=`cat /proc/cpuinfo | grep -v "model name" | grep processor | tail -1 | awk -F" " '\''{print $$3}'\''`;echo `expr $NUM_CPUS + 1`'
4
nproc is part of coreutils since version 8.1. On systems without nproc it will
just assume that a single processing unit is available.
Signed-off-by: Sven Eckelmann <sven.eckelmann@gmx.de>
---
batman-adv/Makefile | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
Comments
On Wednesday 23 June 2010 14:12:56 Sven Eckelmann wrote:
> nproc is part of coreutils since version 8.1. On systems without nproc it
> will just assume that a single processing unit is available.
Ok, I applied the batman-adv and batctl patch in revision 1719 & 1720.
However, the other patches I'd rather not commit because these branches are
unmaintained. As soon as a maintainer shows up they can go in.
Cheers,
Marek
@@ -41,7 +41,7 @@ REVISION= $(shell if [ -d .svn ]; then \
fi; \
fi)
-NUM_CPUS = $(shell NUM_CPUS=`cat /proc/cpuinfo | grep -v 'model name' | grep processor | tail -1 | awk -F' ' '{print $$3}'`;echo `expr $$NUM_CPUS + 1`)
+NUM_CPUS = $(shell nproc 2> /dev/null || echo 1)
include $(PWD)/Makefile.kbuild