[PATCH 6/9] gitlab-ci: Split gprof-gcov job

Philippe Mathieu-Daudé posted 9 patches 4 years, 8 months ago
[PATCH 6/9] gitlab-ci: Split gprof-gcov job
Posted by Philippe Mathieu-Daudé 4 years, 8 months ago
This job is hitting the 70min limit, so split it in 2 tasks.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 .gitlab-ci.d/buildtest.yml | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index f903fdea3f4..894732e203d 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -564,16 +564,27 @@ check-deprecated:
   allow_failure: true
 
 # gprof/gcov are GCC features
-gprof-gcov:
+build-gprof-gcov:
   extends: .native_build_job_template
   needs:
     job: amd64-ubuntu2004-container
   variables:
     IMAGE: ubuntu2004
     CONFIGURE_ARGS: --enable-gprof --enable-gcov
-    MAKE_CHECK_ARGS: check
     TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
-  timeout: 70m
+  artifacts:
+    expire_in: 1 days
+    paths:
+      - build
+
+check-gprof-gcov:
+  extends: .native_test_job_template
+  needs:
+    - job: build-gprof-gcov
+      artifacts: true
+  variables:
+    IMAGE: ubuntu2004
+    MAKE_CHECK_ARGS: check
   after_script:
     - ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh
 
-- 
2.26.3

Re: [PATCH 6/9] gitlab-ci: Split gprof-gcov job
Posted by Philippe Mathieu-Daudé 4 years, 8 months ago
On 5/25/21 10:25 AM, Philippe Mathieu-Daudé wrote:
> This job is hitting the 70min limit, so split it in 2 tasks.
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  .gitlab-ci.d/buildtest.yml | 17 ++++++++++++++---
>  1 file changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
> index f903fdea3f4..894732e203d 100644
> --- a/.gitlab-ci.d/buildtest.yml
> +++ b/.gitlab-ci.d/buildtest.yml
> @@ -564,16 +564,27 @@ check-deprecated:
>    allow_failure: true
>  
>  # gprof/gcov are GCC features
> -gprof-gcov:
> +build-gprof-gcov:
>    extends: .native_build_job_template
>    needs:
>      job: amd64-ubuntu2004-container
>    variables:
>      IMAGE: ubuntu2004
>      CONFIGURE_ARGS: --enable-gprof --enable-gcov
> -    MAKE_CHECK_ARGS: check
>      TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
> -  timeout: 70m
> +  artifacts:
> +    expire_in: 1 days
> +    paths:
> +      - build

FYI this job takes 28min:
https://gitlab.com/philmd/qemu/-/jobs/1290778672

> +
> +check-gprof-gcov:
> +  extends: .native_test_job_template
> +  needs:
> +    - job: build-gprof-gcov
> +      artifacts: true
> +  variables:
> +    IMAGE: ubuntu2004
> +    MAKE_CHECK_ARGS: check
>    after_script:
>      - ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh

and this one 23min:
https://gitlab.com/philmd/qemu/-/jobs/1290778751

Re: [PATCH 6/9] gitlab-ci: Split gprof-gcov job
Posted by Thomas Huth 4 years, 8 months ago
On 25/05/2021 12.21, Philippe Mathieu-Daudé wrote:
> On 5/25/21 10:25 AM, Philippe Mathieu-Daudé wrote:
>> This job is hitting the 70min limit, so split it in 2 tasks.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>>   .gitlab-ci.d/buildtest.yml | 17 ++++++++++++++---
>>   1 file changed, 14 insertions(+), 3 deletions(-)
>>
>> diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
>> index f903fdea3f4..894732e203d 100644
>> --- a/.gitlab-ci.d/buildtest.yml
>> +++ b/.gitlab-ci.d/buildtest.yml
>> @@ -564,16 +564,27 @@ check-deprecated:
>>     allow_failure: true
>>   
>>   # gprof/gcov are GCC features
>> -gprof-gcov:
>> +build-gprof-gcov:
>>     extends: .native_build_job_template
>>     needs:
>>       job: amd64-ubuntu2004-container
>>     variables:
>>       IMAGE: ubuntu2004
>>       CONFIGURE_ARGS: --enable-gprof --enable-gcov
>> -    MAKE_CHECK_ARGS: check
>>       TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
>> -  timeout: 70m
>> +  artifacts:
>> +    expire_in: 1 days
>> +    paths:
>> +      - build
> 
> FYI this job takes 28min:
> https://gitlab.com/philmd/qemu/-/jobs/1290778672
> 
>> +
>> +check-gprof-gcov:
>> +  extends: .native_test_job_template
>> +  needs:
>> +    - job: build-gprof-gcov
>> +      artifacts: true
>> +  variables:
>> +    IMAGE: ubuntu2004
>> +    MAKE_CHECK_ARGS: check
>>     after_script:
>>       - ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh
> 
> and this one 23min:
> https://gitlab.com/philmd/qemu/-/jobs/1290778751

So why are they taking less than 70 minutes when split in two parts, but are 
exceeding  the 70 minutes when done in one job?
That does not make sense...

  Thomas


Re: [PATCH 6/9] gitlab-ci: Split gprof-gcov job
Posted by Alex Bennée 4 years, 8 months ago
Thomas Huth <thuth@redhat.com> writes:

> On 25/05/2021 12.21, Philippe Mathieu-Daudé wrote:
>> On 5/25/21 10:25 AM, Philippe Mathieu-Daudé wrote:
>>> This job is hitting the 70min limit, so split it in 2 tasks.
>>>
>>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>>> ---
>>>   .gitlab-ci.d/buildtest.yml | 17 ++++++++++++++---
>>>   1 file changed, 14 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
>>> index f903fdea3f4..894732e203d 100644
>>> --- a/.gitlab-ci.d/buildtest.yml
>>> +++ b/.gitlab-ci.d/buildtest.yml
>>> @@ -564,16 +564,27 @@ check-deprecated:
>>>     allow_failure: true
>>>     # gprof/gcov are GCC features
>>> -gprof-gcov:
>>> +build-gprof-gcov:
>>>     extends: .native_build_job_template
>>>     needs:
>>>       job: amd64-ubuntu2004-container
>>>     variables:
>>>       IMAGE: ubuntu2004
>>>       CONFIGURE_ARGS: --enable-gprof --enable-gcov
>>> -    MAKE_CHECK_ARGS: check
>>>       TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
>>> -  timeout: 70m
>>> +  artifacts:
>>> +    expire_in: 1 days
>>> +    paths:
>>> +      - build
>> FYI this job takes 28min:
>> https://gitlab.com/philmd/qemu/-/jobs/1290778672
>> 
>>> +
>>> +check-gprof-gcov:
>>> +  extends: .native_test_job_template
>>> +  needs:
>>> +    - job: build-gprof-gcov
>>> +      artifacts: true
>>> +  variables:
>>> +    IMAGE: ubuntu2004
>>> +    MAKE_CHECK_ARGS: check
>>>     after_script:
>>>       - ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh
>> and this one 23min:
>> https://gitlab.com/philmd/qemu/-/jobs/1290778751
>
> So why are they taking less than 70 minutes when split in two parts,
> but are exceeding  the 70 minutes when done in one job?
> That does not make sense...

The time just seems to be highly variable. Normally I see succeeding
runs take ~40 minutes. I suspect there is some aspect of the profiling
code that interacts poorly under load leading to much longer runtimes.

-- 
Alex Bennée

Re: [PATCH 6/9] gitlab-ci: Split gprof-gcov job
Posted by Willian Rampazzo 4 years, 8 months ago
On Tue, May 25, 2021 at 5:26 AM Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>
> This job is hitting the 70min limit, so split it in 2 tasks.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  .gitlab-ci.d/buildtest.yml | 17 ++++++++++++++---
>  1 file changed, 14 insertions(+), 3 deletions(-)
>

Reviewed-by: Willian Rampazzo <willianr@redhat.com>


Re: [PATCH 6/9] gitlab-ci: Split gprof-gcov job
Posted by Alex Bennée 4 years, 8 months ago
Philippe Mathieu-Daudé <f4bug@amsat.org> writes:

> This job is hitting the 70min limit, so split it in 2 tasks.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  .gitlab-ci.d/buildtest.yml | 17 ++++++++++++++---
>  1 file changed, 14 insertions(+), 3 deletions(-)

I've grabbed this for the PR I'm rolling now...

-- 
Alex Bennée