[PATCH] travis.yml: Limit simultaneous jobs to 3

Thomas Huth posted 1 patch 4 years, 11 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210217102531.1441557-1-thuth@redhat.com
Maintainers: "Alex Bennée" <alex.bennee@linaro.org>, Fam Zheng <fam@euphon.net>, "Philippe Mathieu-Daudé" <philmd@redhat.com>
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] travis.yml: Limit simultaneous jobs to 3
Posted by Thomas Huth 4 years, 11 months ago
Even though the host machines that run the Travis CI jobs have
quite a lot of CPUs (e.g. nproc in an aarch64 job reports 32), the
containers on Travis are still limited to 2 vCPUs according to:

 https://docs.travis-ci.com/user/reference/overview/#approx-boot-time

So we do not gain much when compiling with a job number based on
the output of "getconf _NPROCESSORS_ONLN" - quite the contrary, the
aarch64 containers are currently aborting quite often since they
are running out of memory. Thus let's rather use a fixed number
like 3 in the jobs here, so that e.g. two threads can actively run
while a third one might be waiting for I/O operations to complete.
This should hopefully fix the out-of-memory failures in the aarch64
CI jobs.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 See also this URL for the explanation of the 32 vs 2 CPUs on aarch64:
 https://travis-ci.community/t/nproc-reports-32-cores-on-arm64/5851

 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index fc27fd6330..cc39a447e8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -88,7 +88,7 @@ git:
 # Common first phase for all steps
 before_install:
   - if command -v ccache ; then ccache --zero-stats ; fi
-  - export JOBS=$(($(getconf _NPROCESSORS_ONLN) + 1))
+  - export JOBS=3
   - echo "=== Using ${JOBS} simultaneous jobs ==="
 
 # Configure step - may be overridden
-- 
2.27.0


Re: [PATCH] travis.yml: Limit simultaneous jobs to 3
Posted by Alex Bennée 4 years, 11 months ago
Thomas Huth <thuth@redhat.com> writes:

> Even though the host machines that run the Travis CI jobs have
> quite a lot of CPUs (e.g. nproc in an aarch64 job reports 32), the
> containers on Travis are still limited to 2 vCPUs according to:
>
>  https://docs.travis-ci.com/user/reference/overview/#approx-boot-time
>
> So we do not gain much when compiling with a job number based on
> the output of "getconf _NPROCESSORS_ONLN" - quite the contrary, the
> aarch64 containers are currently aborting quite often since they
> are running out of memory. Thus let's rather use a fixed number
> like 3 in the jobs here, so that e.g. two threads can actively run
> while a third one might be waiting for I/O operations to complete.
> This should hopefully fix the out-of-memory failures in the aarch64
> CI jobs.
>

Queued to testing/next, thanks.

> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  See also this URL for the explanation of the 32 vs 2 CPUs on aarch64:
>  https://travis-ci.community/t/nproc-reports-32-cores-on-arm64/5851
>
>  .travis.yml | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/.travis.yml b/.travis.yml
> index fc27fd6330..cc39a447e8 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -88,7 +88,7 @@ git:
>  # Common first phase for all steps
>  before_install:
>    - if command -v ccache ; then ccache --zero-stats ; fi
> -  - export JOBS=$(($(getconf _NPROCESSORS_ONLN) + 1))
> +  - export JOBS=3
>    - echo "=== Using ${JOBS} simultaneous jobs ==="
>  
>  # Configure step - may be overridden


-- 
Alex Bennée

Re: [PATCH] travis.yml: Limit simultaneous jobs to 3
Posted by Philippe Mathieu-Daudé 4 years, 11 months ago
On 2/17/21 11:25 AM, Thomas Huth wrote:
> Even though the host machines that run the Travis CI jobs have
> quite a lot of CPUs (e.g. nproc in an aarch64 job reports 32), the
> containers on Travis are still limited to 2 vCPUs according to:
> 
>  https://docs.travis-ci.com/user/reference/overview/#approx-boot-time
> 
> So we do not gain much when compiling with a job number based on
> the output of "getconf _NPROCESSORS_ONLN" - quite the contrary, the
> aarch64 containers are currently aborting quite often since they
> are running out of memory. Thus let's rather use a fixed number
> like 3 in the jobs here, so that e.g. two threads can actively run
> while a third one might be waiting for I/O operations to complete.
> This should hopefully fix the out-of-memory failures in the aarch64
> CI jobs.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  See also this URL for the explanation of the 32 vs 2 CPUs on aarch64:
>  https://travis-ci.community/t/nproc-reports-32-cores-on-arm64/5851
> 
>  .travis.yml | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/.travis.yml b/.travis.yml
> index fc27fd6330..cc39a447e8 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -88,7 +88,7 @@ git:
>  # Common first phase for all steps
>  before_install:
>    - if command -v ccache ; then ccache --zero-stats ; fi
> -  - export JOBS=$(($(getconf _NPROCESSORS_ONLN) + 1))
> +  - export JOBS=3

Maybe worth a comment around?

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

>    - echo "=== Using ${JOBS} simultaneous jobs ==="
>  
>  # Configure step - may be overridden
>