cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

cpus2use.sh (829B)


      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`
     18if mpstat -V > /dev/null 2>&1
     19then
     20	idlecpus=`mpstat | tail -1 | \
     21		awk -v ncpus=$ncpus '{ print ncpus * ($7 + $NF) / 100 }'`
     22else
     23	# No mpstat command, so use all available CPUs.
     24	idlecpus=$ncpus
     25fi
     26awk -v ncpus=$ncpus -v idlecpus=$idlecpus < /dev/null '
     27BEGIN {
     28	cpus2use = idlecpus;
     29	if (cpus2use < 1)
     30		cpus2use = 1;
     31	if (cpus2use < ncpus / 10)
     32		cpus2use = ncpus / 10;
     33	if (cpus2use == int(cpus2use))
     34		cpus2use = int(cpus2use)
     35	else
     36		cpus2use = int(cpus2use) + 1
     37	print cpus2use;
     38}'
     39