1
0
Fork 0
tuned/profiles/cpu-partitioning/script.sh
Ondřej Lysoněk 1b80d4eac2 Disable KSM only once, re-enable it only on full rollback
Disabling the ksm and ksmtuned services during boot seems to cause
problems, so do it only once when the profile is first applied and
reenable the services only when full rollback is required.

Resolves: rhbz#1622239

Signed-off-by: Ondřej Lysoněk <olysonek@redhat.com>
2018-11-21 11:27:44 +01:00

63 lines
1.5 KiB
Bash
Executable file

#!/bin/sh
. /usr/lib/tuned/functions
no_balance_cpus_file=$STORAGE/no-balance-cpus.txt
change_sd_balance_bit()
{
local set_bit=$1
local flags_cur=
local file=
local cpu=
for cpu in $(cat $no_balance_cpus_file); do
for file in $(find /proc/sys/kernel/sched_domain/cpu$cpu -name flags -print); do
flags_cur=$(cat $file)
if [ $set_bit -eq 1 ]; then
flags_cur=$((flags_cur | 0x1))
else
flags_cur=$((flags_cur & 0xfffe))
fi
echo $flags_cur > $file
done
done
}
disable_balance_domains()
{
change_sd_balance_bit 0
}
enable_balance_domains()
{
change_sd_balance_bit 1
}
start() {
mkdir -p "${TUNED_tmpdir}/etc/systemd"
mkdir -p "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev"
cp /etc/systemd/system.conf "${TUNED_tmpdir}/etc/systemd/"
cp 00-tuned-pre-udev.sh "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev/"
sed -i '/^IRQBALANCE_BANNED_CPUS=/d' /etc/sysconfig/irqbalance
echo "IRQBALANCE_BANNED_CPUS=$TUNED_isolated_cpumask" >>/etc/sysconfig/irqbalance
setup_kvm_mod_low_latency
disable_ksm
echo "$TUNED_no_balance_cores_expanded" | sed 's/,/ /g' > $no_balance_cpus_file
disable_balance_domains
return "$?"
}
stop() {
if [ "$1" = "full_rollback" ]
then
sed -i '/^IRQBALANCE_BANNED_CPUS=/d' /etc/sysconfig/irqbalance
teardown_kvm_mod_low_latency
enable_ksm
fi
enable_balance_domains
return "$?"
}
process $@