summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-12-31 00:41:12 +0000
committerV3n3RiX <venerix@redcorelinux.org>2020-12-31 00:41:12 +0000
commit3d811e9ab090d955af5dc6641896656a5e517069 (patch)
tree585e392aadfde46a9f19e324e9772432427ff193
parent9163df2c61b1b79cb14a4358e304b31756384077 (diff)
do not use SMT cores
-rwxr-xr-xsrc/helpers/set_jobs11
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