1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0+
3#
4# Get an estimate of how CPU-hoggy to be.
5#
6# Usage: cpus2use.sh
7#
8# Copyright (C) IBM Corporation, 2013
9#
10# Authors: Paul E. McKenney <paulmck@linux.ibm.com>
11
12if test -n "$TORTURE_ALLOTED_CPUS"
13then
14	echo $TORTURE_ALLOTED_CPUS
15	exit 0
16fi
17ncpus=`grep '^processor' /proc/cpuinfo | wc -l`
18idlecpus=`mpstat | tail -1 | \
19	awk -v ncpus=$ncpus '{ print ncpus * ($7 + $NF) / 100 }'`
20awk -v ncpus=$ncpus -v idlecpus=$idlecpus < /dev/null '
21BEGIN {
22	cpus2use = idlecpus;
23	if (cpus2use < 1)
24		cpus2use = 1;
25	if (cpus2use < ncpus / 10)
26		cpus2use = ncpus / 10;
27	if (cpus2use == int(cpus2use))
28		cpus2use = int(cpus2use)
29	else
30		cpus2use = int(cpus2use) + 1
31	print cpus2use;
32}'
33
34