1 #!/bin/bash 1 #!/bin/bash 2 # SPDX-License-Identifier: GPL-2.0+ 2 # SPDX-License-Identifier: GPL-2.0+ 3 # 3 # 4 # Get an estimate of how CPU-hoggy to be. 4 # Get an estimate of how CPU-hoggy to be. 5 # 5 # 6 # Usage: cpus2use.sh 6 # Usage: cpus2use.sh 7 # 7 # 8 # Copyright (C) IBM Corporation, 2013 8 # Copyright (C) IBM Corporation, 2013 9 # 9 # 10 # Authors: Paul E. McKenney <paulmck@linux.ibm. 10 # Authors: Paul E. McKenney <paulmck@linux.ibm.com> 11 11 12 if test -n "$TORTURE_ALLOTED_CPUS" 12 if test -n "$TORTURE_ALLOTED_CPUS" 13 then 13 then 14 echo $TORTURE_ALLOTED_CPUS 14 echo $TORTURE_ALLOTED_CPUS 15 exit 0 15 exit 0 16 fi 16 fi 17 ncpus=`grep '^processor' /proc/cpuinfo | wc -l 17 ncpus=`grep '^processor' /proc/cpuinfo | wc -l` 18 if mpstat -V > /dev/null 2>&1 18 if mpstat -V > /dev/null 2>&1 19 then 19 then 20 idlecpus=`mpstat | tail -1 | \ 20 idlecpus=`mpstat | tail -1 | \ 21 awk -v ncpus=$ncpus '{ print n 21 awk -v ncpus=$ncpus '{ print ncpus * ($7 + $NF) / 100 }'` 22 else 22 else 23 # No mpstat command, so use all availa 23 # No mpstat command, so use all available CPUs. 24 idlecpus=$ncpus 24 idlecpus=$ncpus 25 fi 25 fi 26 awk -v ncpus=$ncpus -v idlecpus=$idlecpus < /d 26 awk -v ncpus=$ncpus -v idlecpus=$idlecpus < /dev/null ' 27 BEGIN { 27 BEGIN { 28 cpus2use = idlecpus; 28 cpus2use = idlecpus; 29 if (cpus2use < 1) 29 if (cpus2use < 1) 30 cpus2use = 1; 30 cpus2use = 1; 31 if (cpus2use < ncpus / 10) 31 if (cpus2use < ncpus / 10) 32 cpus2use = ncpus / 10; 32 cpus2use = ncpus / 10; 33 if (cpus2use == int(cpus2use)) 33 if (cpus2use == int(cpus2use)) 34 cpus2use = int(cpus2use) 34 cpus2use = int(cpus2use) 35 else 35 else 36 cpus2use = int(cpus2use) + 1 36 cpus2use = int(cpus2use) + 1 37 print cpus2use; 37 print cpus2use; 38 }' 38 }' 39 39
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.