diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2020-12-31 00:41:12 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2020-12-31 00:41:12 +0000 |
commit | 3d811e9ab090d955af5dc6641896656a5e517069 (patch) | |
tree | 585e392aadfde46a9f19e324e9772432427ff193 | |
parent | 9163df2c61b1b79cb14a4358e304b31756384077 (diff) |
do not use SMT cores
-rwxr-xr-x | src/helpers/set_jobs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/helpers/set_jobs b/src/helpers/set_jobs index 58dbf1b..df3e080 100755 --- a/src/helpers/set_jobs +++ b/src/helpers/set_jobs @@ -5,8 +5,15 @@ portageConfigDir="/opt/redcore-build/conf/intel/portage" setjobs () { # default MAKEOPTS value is -j64, but that's overkill for lower spec machines # this will adjust MAKEOPTS to a value detected by $(getconf _NPROCESSORS_ONLN) - sed -i "s/\-j\([0-9]\+\)/\-j$(getconf _NPROCESSORS_ONLN)/g" "$portageConfigDir"/make.conf/00-makeopts.conf >/dev/null 2>&1 # global makeopts (exclude kernel) - sed -i "s/\-j\([0-9]\+\)/\-j$(getconf _NPROCESSORS_ONLN)/g" "$portageConfigDir"/env/makenoise.conf >/dev/null 2>&1 # kernel makeopts + # however since compilation is largely pointer-following, SMT won't help much + # and can lead to memory starvation and stalls; DO NOT use logical cores + if [[ $(cat /sys/devices/system/cpu/smt/active) -eq 1 ]]; then + sed -i "s/\-j\([0-9]\+\)/\-j$(expr $(getconf _NPROCESSORS_ONLN) / 2)/g" "$portageConfigDir"/make.conf/00-makeopts.conf >/dev/null 2>&1 # global makeopts (exclude kernel) + sed -i "s/\-j\([0-9]\+\)/\-j$(expr $(getconf _NPROCESSORS_ONLN) / 2)/g" "$portageConfigDir"/env/makenoise.conf >/dev/null 2>&1 # kernel makeopts + elif [[ $(cat /sys/devices/system/cpu/smt/active) -eq 0 ]]; then + sed -i "s/\-j\([0-9]\+\)/\-j$(getconf _NPROCESSORS_ONLN)/g" "$portageConfigDir"/make.conf/00-makeopts.conf >/dev/null 2>&1 # global makeopts (exclude kernel) + sed -i "s/\-j\([0-9]\+\)/\-j$(getconf _NPROCESSORS_ONLN)/g" "$portageConfigDir"/env/makenoise.conf >/dev/null 2>&1 # kernel makeopts + fi } setjobs |