forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/tools/testing/selftests/rcutorture/bin/cpus2use.sh
....@@ -1,30 +1,29 @@
11 #!/bin/bash
2
+# SPDX-License-Identifier: GPL-2.0+
23 #
34 # Get an estimate of how CPU-hoggy to be.
45 #
56 # Usage: cpus2use.sh
67 #
7
-# This program is free software; you can redistribute it and/or modify
8
-# it under the terms of the GNU General Public License as published by
9
-# the Free Software Foundation; either version 2 of the License, or
10
-# (at your option) any later version.
11
-#
12
-# This program is distributed in the hope that it will be useful,
13
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
14
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
-# GNU General Public License for more details.
16
-#
17
-# You should have received a copy of the GNU General Public License
18
-# along with this program; if not, you can access it online at
19
-# http://www.gnu.org/licenses/gpl-2.0.html.
20
-#
218 # Copyright (C) IBM Corporation, 2013
229 #
23
-# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
10
+# Authors: Paul E. McKenney <paulmck@linux.ibm.com>
2411
12
+if test -n "$TORTURE_ALLOTED_CPUS"
13
+then
14
+ echo $TORTURE_ALLOTED_CPUS
15
+ exit 0
16
+fi
2517 ncpus=`grep '^processor' /proc/cpuinfo | wc -l`
26
-idlecpus=`mpstat | tail -1 | \
27
- awk -v ncpus=$ncpus '{ print ncpus * ($7 + $NF) / 100 }'`
18
+if mpstat -V > /dev/null 2>&1
19
+then
20
+ idlecpus=`mpstat | tail -1 | \
21
+ awk -v ncpus=$ncpus '{ print ncpus * ($7 + $NF) / 100 }'`
22
+else
23
+ # No mpstat command, so use all available CPUs.
24
+ echo The mpstat command is not available, so greedily using all CPUs.
25
+ idlecpus=$ncpus
26
+fi
2827 awk -v ncpus=$ncpus -v idlecpus=$idlecpus < /dev/null '
2928 BEGIN {
3029 cpus2use = idlecpus;