Default to tickless idle independently of the CPU scheduler

This seems to be the best balance overall.
We were using it by default for MuQSS only before.
This commit is contained in:
Tk-Glitch 2021-02-26 22:11:35 +01:00
parent 18d75ce0c3
commit 6147e9f88d

View File

@ -974,11 +974,7 @@ CONFIG_DEBUG_INFO_BTF_MODULES=y\n
plain "Use CattaRappa mode (Tickless/Dynticks) ?"
plain "Can give higher performances in many cases but lower consistency on some hardware."
plain "Just tickless idle can perform better with some platforms (mostly AMD) or CPU schedulers (mostly MuQSS)."
if [ "${_cpusched}" = "MuQSS" ]; then
read -rp "`echo $'\n 0.No, use periodic ticks\n 1.Yes, full tickless baby!\n > 2.Just tickless idle plz\n [0-2?]: '`" CONDITION4;
else
read -rp "`echo $'\n 0.No, use periodic ticks\n > 1.Yes, full tickless baby!\n 2.Just tickless idle plz\n [0-2?]: '`" CONDITION4;
fi
fi
if [ "$CONDITION4" = "0" ] || [ "$_tickless" = "0" ]; then
echo "# CONFIG_NO_HZ_FULL_NODEF is not set" >> ./.config
@ -987,22 +983,7 @@ CONFIG_DEBUG_INFO_BTF_MODULES=y\n
sed -i -e 's/CONFIG_NO_HZ_FULL=y/# CONFIG_NO_HZ_FULL is not set/' ./.config
sed -i -e 's/CONFIG_NO_HZ=y/# CONFIG_NO_HZ is not set/' ./.config
sed -i -e 's/CONFIG_NO_HZ_COMMON=y/# CONFIG_NO_HZ_COMMON is not set/' ./.config
elif [ "$CONDITION4" = "2" ] || [ "$_tickless" = "2" ]; then
echo "# CONFIG_NO_HZ_FULL_NODEF is not set" >> ./.config
sed -i -e 's/CONFIG_HZ_PERIODIC=y/# CONFIG_HZ_PERIODIC is not set/' ./.config
sed -i -e 's/# CONFIG_NO_HZ_IDLE is not set/CONFIG_NO_HZ_IDLE=y/' ./.config
sed -i -e 's/CONFIG_NO_HZ_FULL=y/# CONFIG_NO_HZ_FULL is not set/' ./.config
sed -i -e 's/# CONFIG_NO_HZ is not set/CONFIG_NO_HZ=y/' ./.config
sed -i -e 's/# CONFIG_NO_HZ_COMMON is not set/CONFIG_NO_HZ_COMMON=y/' ./.config
else
if [ "${_cpusched}" = "MuQSS" ]; then
echo "# CONFIG_NO_HZ_FULL_NODEF is not set" >> ./.config
sed -i -e 's/CONFIG_HZ_PERIODIC=y/# CONFIG_HZ_PERIODIC is not set/' ./.config
sed -i -e 's/# CONFIG_NO_HZ_IDLE is not set/CONFIG_NO_HZ_IDLE=y/' ./.config
sed -i -e 's/CONFIG_NO_HZ_FULL=y/# CONFIG_NO_HZ_FULL is not set/' ./.config
sed -i -e 's/# CONFIG_NO_HZ is not set/CONFIG_NO_HZ=y/' ./.config
sed -i -e 's/# CONFIG_NO_HZ_COMMON is not set/CONFIG_NO_HZ_COMMON=y/' ./.config
else
elif [ "$CONDITION4" = "2" ] || [ "$_tickless" = "1" ]; then
echo "CONFIG_NO_HZ_FULL_NODEF=y" >> ./.config
sed -i -e 's/CONFIG_HZ_PERIODIC=y/# CONFIG_HZ_PERIODIC is not set/' ./.config
sed -i -e 's/CONFIG_NO_HZ_IDLE=y/# CONFIG_NO_HZ_IDLE is not set/' ./.config
@ -1011,7 +992,13 @@ CONFIG_DEBUG_INFO_BTF_MODULES=y\n
sed -i -e 's/# CONFIG_NO_HZ_COMMON is not set/CONFIG_NO_HZ_COMMON=y/' ./.config
echo "CONFIG_CONTEXT_TRACKING=y" >> ./.config
echo "# CONFIG_CONTEXT_TRACKING_FORCE is not set" >> ./.config
fi
else
echo "# CONFIG_NO_HZ_FULL_NODEF is not set" >> ./.config
sed -i -e 's/CONFIG_HZ_PERIODIC=y/# CONFIG_HZ_PERIODIC is not set/' ./.config
sed -i -e 's/# CONFIG_NO_HZ_IDLE is not set/CONFIG_NO_HZ_IDLE=y/' ./.config
sed -i -e 's/CONFIG_NO_HZ_FULL=y/# CONFIG_NO_HZ_FULL is not set/' ./.config
sed -i -e 's/# CONFIG_NO_HZ is not set/CONFIG_NO_HZ=y/' ./.config
sed -i -e 's/# CONFIG_NO_HZ_COMMON is not set/CONFIG_NO_HZ_COMMON=y/' ./.config
fi
# voluntary preempt