- Update turbostat to latest version 19.08.31 OBS-URL: https://build.opensuse.org/request/show/743864 OBS-URL: https://build.opensuse.org/package/show/hardware/cpupower?expand=0&rev=100
176 lines
5.6 KiB
Bash
176 lines
5.6 KiB
Bash
#!/bin/bash
|
|
|
|
# Author: Thomas Renninger <trenn@suse.de>
|
|
# This code is covered and distributed under
|
|
# the General Public Licence v2
|
|
|
|
GIT_TAG=HEAD
|
|
VERSION=""
|
|
TOOL=""
|
|
|
|
function usage(){
|
|
echo "$(basename $0) [ -k git_tag ] [ -v tag_to_use ] -t cpupower | turbostat | x86_perf_bias | intel-speed-select"
|
|
echo
|
|
echo "git_tag Must be a valid kernel git tag, for example v3.1"
|
|
echo " if git_tag is not passed HEAD will be used which"
|
|
echo " may produce a package incompatible tarball name"
|
|
echo " BEST ALWAYS PASS AN EXISTING TAG"
|
|
echo " cpupower got introduced in 3.1-rc1"
|
|
echo "tag_to_use obs does not like -rcX as a version tag. Pass a verion"
|
|
echo " tag you like to use (e.g. 3.13 instead of 3.13-rc7"
|
|
echo
|
|
echo "export GIT_DIR= environment variable if the git repo is not the current directory"
|
|
echo "For example: GIT_DIR=/path_to_git_repo/.git"
|
|
}
|
|
|
|
function parse_args()
|
|
{
|
|
while getopts hv:k:t: name ; do
|
|
case $name in
|
|
v)
|
|
VERSION="$OPTARG"
|
|
;;
|
|
|
|
k)
|
|
GIT_TAG="$OPTARG"
|
|
;;
|
|
t)
|
|
TOOL="$OPTARG"
|
|
echo $TOOL
|
|
;;
|
|
?|h)
|
|
usage
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
shift $(($OPTIND -1))
|
|
}
|
|
|
|
|
|
function export_cpupower() {
|
|
|
|
echo "Exporting cpupower from kernel version $GIT_TAG"
|
|
|
|
if [ "$VERSION" = "" ];then
|
|
# convert - to . as package versions do not allow -
|
|
if [ $# -eq 1 ];then
|
|
VERSION="${GIT_TAG/-/.}"
|
|
# remove leading v
|
|
VERSION="-${VERSION#v}"
|
|
elif [ $# -eq 2 ];then
|
|
VERSION="${2/-/.}"
|
|
# remove leading v
|
|
VERSION="-${VERSION#v}"
|
|
elif [ $# -gt 2 ];then
|
|
usage
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Tried to do this with one git archive command, but
|
|
# --remote= param seem not to be configured for kernel.org gits
|
|
set -x
|
|
git archive --format=tar $GIT_TAG tools/power/cpupower |tar -x
|
|
set +x
|
|
mv tools/power/cpupower cpupower-${VERSION}
|
|
tar -cvjf cpupower-${VERSION}.tar.bz2 cpupower-${VERSION}
|
|
popd
|
|
mv "$DIR/cpupower-${VERSION}".tar.bz2 .
|
|
echo cpupower-${VERSION}.tar.bz2
|
|
}
|
|
|
|
function export_turbostat() {
|
|
|
|
git archive --format=tar $GIT_TAG tools/power/x86/turbostat |tar -x
|
|
|
|
if [ -z "$TURBOSTAT_VERSION" ];then
|
|
TURBOSTAT_VERSION=$(grep "turbostat version" tools/power/x86/turbostat/turbostat.c |grep fprintf |sed 's/.*turbostat version \([0-9][0-9].[0-9][0-9].[0-9][0-9]\).*/\1/')
|
|
fi
|
|
TURBOSTAT_VERSION=$(echo "-$TURBOSTAT_VERSION")
|
|
mv tools/power/x86/turbostat turbostat${TURBOSTAT_VERSION}
|
|
git checkout $GIT_TAG include/linux/bits.h
|
|
git checkout $GIT_TAG arch/x86/include/asm/msr-index.h
|
|
git checkout $GIT_TAG arch/x86/include/asm/intel-family.h
|
|
mkdir -p turbostat${TURBOSTAT_VERSION}/include/linux
|
|
cp include/linux/bits.h turbostat${TURBOSTAT_VERSION}/include/linux/bits.h
|
|
cp arch/x86/include/asm/intel-family.h turbostat${TURBOSTAT_VERSION}
|
|
cp arch/x86/include/asm/msr-index.h turbostat${TURBOSTAT_VERSION}
|
|
tar -cvjf turbostat${TURBOSTAT_VERSION}.tar.bz2 turbostat${TURBOSTAT_VERSION}
|
|
popd
|
|
mv "$DIR/turbostat${TURBOSTAT_VERSION}".tar.bz2 .
|
|
echo turbostat${TURBOSTAT_VERSION}.tar.bz2
|
|
}
|
|
|
|
function export_x86_perf_bias() {
|
|
|
|
set -x
|
|
git archive --format=tar $GIT_TAG tools/power/x86/x86_energy_perf_policy |tar -x
|
|
|
|
if [ -z "$PERF_BIAS_VERSION" ];then
|
|
PERF_BIAS_VERSION=$(grep 'printf("x86_energy_perf_policy .* (C) Len Brown <len.brown@intel.com' tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy.c |sed 's/.*x86_energy_perf_policy \([0-9][0-9].[0-9][0-9].[0-9][0-9]\).*/\1/')
|
|
fi
|
|
PERF_BIAS_VERSION=$(echo "-$PERF_BIAS_VERSION")
|
|
mv tools/power/x86/x86_energy_perf_policy x86_energy_perf_policy${PERF_BIAS_VERSION}
|
|
set +x
|
|
git checkout $GIT_TAG arch/x86/include/asm/msr-index.h
|
|
cp arch/x86/include/asm/msr-index.h x86_energy_perf_policy${PERF_BIAS_VERSION}
|
|
tar -cvjf x86_energy_perf_policy${PERF_BIAS_VERSION}.tar.bz2 x86_energy_perf_policy${PERF_BIAS_VERSION}
|
|
popd
|
|
mv "$DIR/x86_energy_perf_policy${PERF_BIAS_VERSION}".tar.bz2 .
|
|
echo x86_energy_perf_policy${PERF_BIAS_VERSION}.tar.bz2
|
|
|
|
}
|
|
|
|
function export_intel-speed-select {
|
|
|
|
set -x
|
|
git archive --format=tar $GIT_TAG tools/power/x86/intel-speed-select |tar -x
|
|
|
|
if [ -z "$SPEED_SELECT_VERSION" ];then
|
|
SPEED_SELECT_VERSION=$(sed -n -e 's#static const char \*version_str = "v\(.*\)";#\1#p' tools/power/x86/intel-speed-select/isst-config.c)
|
|
fi
|
|
SPEED_SELECT_VERSION=$(echo "-$SPEED_SELECT_VERSION")
|
|
mv tools/power/x86/intel-speed-select intel-speed-select${SPEED_SELECT_VERSION}
|
|
set +x
|
|
git checkout $GIT_TAG include/uapi/linux/isst_if.h
|
|
mkdir -p intel-speed-select${SPEED_SELECT_VERSION}/include/linux
|
|
cp include/uapi/linux/isst_if.h intel-speed-select${SPEED_SELECT_VERSION}/include/linux
|
|
tar -cvjf intel-speed-select${SPEED_SELECT_VERSION}.tar.bz2 intel-speed-select${SPEED_SELECT_VERSION}
|
|
popd
|
|
mv "$DIR/intel-speed-select${SPEED_SELECT_VERSION}".tar.bz2 .
|
|
echo intel-speed-select${SPEED_SELECT_VERSION}.tar.bz2
|
|
}
|
|
|
|
parse_args $*
|
|
|
|
DIR=`mktemp -d`
|
|
pushd "$DIR"
|
|
|
|
if [ "$GIT_DIR" = "" ];then
|
|
export GIT_DIR=/archteam/trenn/git/linux-2.6/.git
|
|
fi
|
|
|
|
case $TOOL in
|
|
cpupower)
|
|
export_cpupower
|
|
;;
|
|
turbostat)
|
|
export_turbostat
|
|
;;
|
|
x86_perf_bias)
|
|
export_x86_perf_bias
|
|
;;
|
|
intel-speed-select)
|
|
set -x
|
|
export_intel-speed-select
|
|
;;
|
|
*)
|
|
echo "You have to provide the tool you want to export cpupower|turbostat|x86_energy_perf_bias|intel-speed-select"
|
|
usage
|
|
rm -rf "$DIR"
|
|
exit 1
|
|
;;
|
|
esac
|
|
rm -rf "$DIR"
|