#!/bin/bash
# SPDX-License-Identifier: GPL-2.0+
#
# Get an estimate of how CPU-hoggy to be.
#
# Usage: cpus2use.sh
#
# Copyright (C) IBM Corporation, 2013
#
# Authors: Paul E. McKenney <paulmck@linux.ibm.com>

if test -n "$TORTURE_ALLOTED_CPUS"
then
	echo $TORTURE_ALLOTED_CPUS
	exit 0
fi
ncpus=`grep '^processor' /proc/cpuinfo | wc -l`
if mpstat -V > /dev/null 2>&1
then
	idlecpus=`mpstat | tail -1 | \
		awk -v ncpus=$ncpus '{ print ncpus * ($7 + $NF) / 100 }'`
else
	# No mpstat command, so use all available CPUs.
	echo The mpstat command is not available, so greedily using all CPUs.
	idlecpus=$ncpus
fi
awk -v ncpus=$ncpus -v idlecpus=$idlecpus < /dev/null '
BEGIN {
	cpus2use = idlecpus;
	if (cpus2use < 1)
		cpus2use = 1;
	if (cpus2use < ncpus / 10)
		cpus2use = ncpus / 10;
	if (cpus2use == int(cpus2use))
		cpus2use = int(cpus2use)
	else
		cpus2use = int(cpus2use) + 1
	print cpus2use;
}'

