diff options
-rwxr-xr-x | ci/envs/guest-setup0.sh | 63 | ||||
-rwxr-xr-x | ci/envs/guest-setup1.sh | 26 |
2 files changed, 89 insertions, 0 deletions
diff --git a/ci/envs/guest-setup0.sh b/ci/envs/guest-setup0.sh new file mode 100755 index 000000000..490bd570d --- /dev/null +++ b/ci/envs/guest-setup0.sh @@ -0,0 +1,63 @@ +#!/bin/bash +############################################################################## +## Copyright (c) 2015 Intel Corp. +## +## All rights reserved. This program and the accompanying materials +## are made available under the terms of the Apache License, Version 2.0 +## which accompanies this distribution, and is available at +## http://www.apache.org/licenses/LICENSE-2.0 +############################################################################### + + +rpmdir=${1:-"/root/workspace/"} +rpmpat="kernel-4.1*.rpm" +rpm -ihv ${rpmdir}/rt-tests-0.96-1.el7.centos.x86_64.rpm +guest_isolcpus=1 + +# The script's caller should passing the rpm directory that is built out from +# build.sh. The default rpmdir is the one used by yardstick scripts. +install_kernel () { + # Install the kernel rpm + filenum=`ls -l ${rpmdir}/${rpmpat} |wc -l` + if [ $filenum -eq 0 ] + then + echo "No kernel rpm found in workspace/rpm" + exit 1 + elif [ $filenum -gt 1 ] + then + echo "Multiple kernel rpm found in workspace/rpm" + exit 1 + else + krpm=`find "${rpmdir}" -name "${rpmpat}"` + rpm -ihv $krpm + fi +} + +config_grub () { + key=$1 + val=$2 + + if grep '[" ]'${key} /etc/default/grub > /dev/null ; then + sed -i 's/\([" ]\)'${key}'=[^ "]*/\1'${key}'='${val}'/' /etc/default/grub + else + sed -i 's/GRUB_CMDLINE_LINUX="\(.*\)"/GRUB_CMDLINE_LINUX="\1 '${key}'='${val}'"/' /etc/default/grub + fi +} + +# Isolate CPUs from the general scheduler +config_grub 'isolcpus' ${guest_isolcpus} + +# Stop timer ticks on isolated CPUs whenever possible +config_grub 'nohz_full' ${guest_isolcpus} + +# Disable machine check +config_grub 'mce' 'off' + +# Use polling idle loop to improve performance +config_grub 'idle' 'poll' + +## Disable clocksource verification at runtime +config_grub 'tsc' 'reliable' + +grub2-mkconfig -o /boot/grub2/grub.cfg +install_kernel diff --git a/ci/envs/guest-setup1.sh b/ci/envs/guest-setup1.sh new file mode 100755 index 000000000..678baa43b --- /dev/null +++ b/ci/envs/guest-setup1.sh @@ -0,0 +1,26 @@ +#!/bin/bash +############################################################################## +## Copyright (c) 2015 Intel Corp. +## +## All rights reserved. This program and the accompanying materials +## are made available under the terms of the Apache License, Version 2.0 +## which accompanies this distribution, and is available at +## http://www.apache.org/licenses/LICENSE-2.0 +############################################################################### + +set_irq_affinity () { + for irq in /proc/irq/* ; do + echo 0 > /proc/irq/${1}/smp_affinity_list + done +} + +# Disable watchdogs to reduce overhead +echo 0 > /proc/sys/kernel/watchdog +echo 0 > /proc/sys/kernel/nmi_watchdog + +# Route device interrupts to non-RT CPU +set_irq_affinity + +# Disable RT throttling +echo -1 > /proc/sys/kernel/sched_rt_period_us +echo -1 > /proc/sys/kernel/sched_rt_runtime_us |