summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJun Aruga <jaruga@redhat.com>2025-08-26 15:38:16 +0100
committerJun Aruga <junaruga@users.noreply.github.com>2025-08-27 14:48:54 +0100
commit47d4cceeff1be3c661af09fa2e29a3578dbab5e6 (patch)
tree11b013bb99208bb5bebd46ae252b4c7f99404292
parent8935cf98e5e6b1b94ffcb6ab46c83339487f5de0 (diff)
CI: Use `nproc` to count only on-line CPUs for GNUMAKEFLAGS
Use `nproc` rather than `nproc --all`. Because the number by the `nproc` is different from the number by the `nproc --all` on GitHub Actions ppc64le/s390x. This caused the `make` command runs much more jobs than the number of on-line CPUs on these environments. The make command ran 193 jobs in parallel for 4 on-line CPUs in GitHub Actions ppc64le, and ran 9 jobs in parallel for 4 on-line CPUs in GitHub Actions s390x. And this caused the high load average 34.58 on ppc64le, and 6.69 on s390x. These values should be less than 4.0. I believe we should use the `nproc` rather than `nproc --all`. ``` + nproc 4 + nproc --all 192 ``` ``` + nproc 4 + nproc --all 8 ``` See https://github.com/IBM/actionspz/issues/38 for details. Note the `--all` option in the `nproc --all` was originally added to boost CPU in a hyper threading environment where one physical core works like two logical cores. https://www.intel.com/content/www/us/en/gaming/resources/hyper-threading.html
-rwxr-xr-x.github/actions/compilers/entrypoint.sh2
-rw-r--r--.github/actions/setup/directories/action.yml2
2 files changed, 2 insertions, 2 deletions
diff --git a/.github/actions/compilers/entrypoint.sh b/.github/actions/compilers/entrypoint.sh
index 17f749d69e..4f9d1304ee 100755
--- a/.github/actions/compilers/entrypoint.sh
+++ b/.github/actions/compilers/entrypoint.sh
@@ -26,7 +26,7 @@ export CONFIGURE_TTY='never'
export RUBY_DEBUG='ci rgengc'
export RUBY_TESTOPTS='-q --color=always --tty=no'
export RUBY_DEBUG_COUNTER_DISABLE='1'
-export GNUMAKEFLAGS="-j$((1 + $(nproc --all)))"
+export GNUMAKEFLAGS="-j$((1 + $(nproc)))"
case "x${INPUT_ENABLE_SHARED}" in
x | xno | xfalse )
diff --git a/.github/actions/setup/directories/action.yml b/.github/actions/setup/directories/action.yml
index 728e082189..885eabf571 100644
--- a/.github/actions/setup/directories/action.yml
+++ b/.github/actions/setup/directories/action.yml
@@ -110,7 +110,7 @@ runs:
- if: runner.os == 'Linux'
shell: bash
- run: echo "GNUMAKEFLAGS=-sj$((1 + $(nproc --all)))" >> "$GITHUB_ENV"
+ run: echo "GNUMAKEFLAGS=-sj$((1 + $(nproc)))" >> "$GITHUB_ENV"
# macOS' GNU make is so old that they doesn't understand `GNUMAKEFLAGS`.
- if: runner.os == 'macOS'