[PATCH 02/12] CI: Remove useless/misleading randconfig jobs

Andrew Cooper posted 12 patches 2 months, 1 week ago
[PATCH 02/12] CI: Remove useless/misleading randconfig jobs
Posted by Andrew Cooper 2 months, 1 week ago
Randconfig builds pick CONFIG_DEBUG with 50% probability.  Therefore
$foo{,-debug}-randconfig are two identical jobs with misleading names.

Furthermore, arm64 has a randconfig jobs for both the alpine and bookworm
build environments.  Both use GCC 12.2, so we have 4 identical jobs.  Delete 3
of them.

This leaves us with 4 primary randconfig jobs:

  gitlab-ci/build.yaml:381:debian-bookworm-gcc-arm32-randconfig:
  gitlab-ci/build.yaml:429:alpine-3.18-gcc-arm64-randconfig:
  gitlab-ci/build.yaml:495:archlinux-current-gcc-riscv64-randconfig:
  gitlab-ci/build.yaml:640:debian-bookworm-gcc-randconfig:

as PPC64 doesn't want randconfig right now, and buster-gcc-ibt is a special
job with a custom compiler.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: Shawn Anastasio <sanastasio@raptorengineering.com>

Here is an example debug-randconfig with a release builds:
  https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/7312848876

If we want to run multiple identical randconfig jobs, that's spelt

  parallel: 5

in the configuration, and here is an example of what such a run looks like:
  https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1368824041

Notice the randconfig jobs have a 5 in place of a retry button, and show a
submenu when clicked on.
---
 automation/gitlab-ci/build.yaml | 39 ---------------------------------
 1 file changed, 39 deletions(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index ff5c9055d1f0..da7b8885aa30 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -385,13 +385,6 @@ debian-bookworm-gcc-arm32-randconfig:
     HYPERVISOR_ONLY: y
     RANDCONFIG: y
 
-debian-bookworm-gcc-arm32-debug-randconfig:
-  extends: .gcc-arm32-cross-build-debug
-  variables:
-    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
-    HYPERVISOR_ONLY: y
-    RANDCONFIG: y
-
 debian-bookworm-gcc-arm32-debug-staticmem:
   extends: .gcc-arm32-cross-build-debug
   variables:
@@ -423,18 +416,6 @@ debian-bookworm-gcc-debug-arm64:
   variables:
     CONTAINER: debian:bookworm-arm64v8
 
-debian-bookworm-gcc-arm64-randconfig:
-  extends: .gcc-arm64-build
-  variables:
-    CONTAINER: debian:bookworm-arm64v8
-    RANDCONFIG: y
-
-debian-bookworm-gcc-debug-arm64-randconfig:
-  extends: .gcc-arm64-build-debug
-  variables:
-    CONTAINER: debian:bookworm-arm64v8
-    RANDCONFIG: y
-
 alpine-3.18-gcc-arm64:
   extends: .gcc-arm64-build
   variables:
@@ -451,12 +432,6 @@ alpine-3.18-gcc-arm64-randconfig:
     CONTAINER: alpine:3.18-arm64v8
     RANDCONFIG: y
 
-alpine-3.18-gcc-debug-arm64-randconfig:
-  extends: .gcc-arm64-build-debug
-  variables:
-    CONTAINER: alpine:3.18-arm64v8
-    RANDCONFIG: y
-
 alpine-3.18-gcc-debug-arm64-staticmem:
   extends: .gcc-arm64-build-debug
   variables:
@@ -525,14 +500,6 @@ archlinux-current-gcc-riscv64-randconfig:
     RANDCONFIG: y
     <<: *riscv-fixed-randconfig
 
-archlinux-current-gcc-riscv64-debug-randconfig:
-  extends: .gcc-riscv64-cross-build-debug
-  variables:
-    CONTAINER: archlinux:current-riscv64
-    KBUILD_DEFCONFIG: tiny64_defconfig
-    RANDCONFIG: y
-    <<: *riscv-fixed-randconfig
-
 # Power cross-build
 debian-bullseye-gcc-ppc64le:
   extends: .gcc-ppc64le-cross-build
@@ -676,12 +643,6 @@ debian-bookworm-gcc-randconfig:
     CONTAINER: debian:bookworm
     RANDCONFIG: y
 
-debian-bookworm-gcc-debug-randconfig:
-  extends: .gcc-x86-64-build-debug
-  variables:
-    CONTAINER: debian:bookworm
-    RANDCONFIG: y
-
 debian-bookworm-32-clang-debug:
   extends: .clang-x86-32-build-debug
   variables:
-- 
2.39.2


Re: [PATCH 02/12] CI: Remove useless/misleading randconfig jobs
Posted by Anthony PERARD 2 months, 1 week ago
On Thu, Jul 11, 2024 at 12:15:07PM +0100, Andrew Cooper wrote:
> Randconfig builds pick CONFIG_DEBUG with 50% probability.  Therefore
> $foo{,-debug}-randconfig are two identical jobs with misleading names.
> 
> Furthermore, arm64 has a randconfig jobs for both the alpine and bookworm
> build environments.  Both use GCC 12.2, so we have 4 identical jobs.  Delete 3
> of them.
> 
> This leaves us with 4 primary randconfig jobs:
> 
>   gitlab-ci/build.yaml:381:debian-bookworm-gcc-arm32-randconfig:
>   gitlab-ci/build.yaml:429:alpine-3.18-gcc-arm64-randconfig:
>   gitlab-ci/build.yaml:495:archlinux-current-gcc-riscv64-randconfig:
>   gitlab-ci/build.yaml:640:debian-bookworm-gcc-randconfig:
> 
> as PPC64 doesn't want randconfig right now, and buster-gcc-ibt is a special
> job with a custom compiler.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks,

> If we want to run multiple identical randconfig jobs, that's spelt
> 
>   parallel: 5
> 
> in the configuration, and here is an example of what such a run looks like:
>   https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1368824041
> 
> Notice the randconfig jobs have a 5 in place of a retry button, and show a
> submenu when clicked on.

We already have "parallel: 2" on the whole pipeline, give or take, but
those are quick jobs so it might be worth it to run them a few more time
on a pipeline.

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech
Re: [PATCH 02/12] CI: Remove useless/misleading randconfig jobs
Posted by Andrew Cooper 2 months, 1 week ago
On 11/07/2024 2:09 pm, Anthony PERARD wrote:
> On Thu, Jul 11, 2024 at 12:15:07PM +0100, Andrew Cooper wrote:
>> Randconfig builds pick CONFIG_DEBUG with 50% probability.  Therefore
>> $foo{,-debug}-randconfig are two identical jobs with misleading names.
>>
>> Furthermore, arm64 has a randconfig jobs for both the alpine and bookworm
>> build environments.  Both use GCC 12.2, so we have 4 identical jobs.  Delete 3
>> of them.
>>
>> This leaves us with 4 primary randconfig jobs:
>>
>>   gitlab-ci/build.yaml:381:debian-bookworm-gcc-arm32-randconfig:
>>   gitlab-ci/build.yaml:429:alpine-3.18-gcc-arm64-randconfig:
>>   gitlab-ci/build.yaml:495:archlinux-current-gcc-riscv64-randconfig:
>>   gitlab-ci/build.yaml:640:debian-bookworm-gcc-randconfig:
>>
>> as PPC64 doesn't want randconfig right now, and buster-gcc-ibt is a special
>> job with a custom compiler.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>

Thanks.

>
> Thanks,
>
>> If we want to run multiple identical randconfig jobs, that's spelt
>>
>>   parallel: 5
>>
>> in the configuration, and here is an example of what such a run looks like:
>>   https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1368824041
>>
>> Notice the randconfig jobs have a 5 in place of a retry button, and show a
>> submenu when clicked on.
> We already have "parallel: 2" on the whole pipeline, give or take, but
> those are quick jobs so it might be worth it to run them a few more time
> on a pipeline.

I'm afraid I don't follow.

The runners themselves are set up to run concurrent jobs.  I could well
believe that's spelt parallel: in the runner config files.

Here, its really jobs:parallel which is the way of saying "I want 5
copies of this job to run in the pipeline".

Obviously, 5 is arbitrary.  I was thinking of having a scheduled (once
per day, at 3AM or whenever) running randconfig only with a parallel:20
or so, so we can make good use of otherwise-idle time.

~Andrew

Re: [PATCH 02/12] CI: Remove useless/misleading randconfig jobs
Posted by Anthony PERARD 2 months, 1 week ago
On Thu, Jul 11, 2024 at 04:16:29PM +0100, Andrew Cooper wrote:
> On 11/07/2024 2:09 pm, Anthony PERARD wrote:
> > We already have "parallel: 2" on the whole pipeline, give or take, but
> > those are quick jobs so it might be worth it to run them a few more time
> > on a pipeline.
> 
> I'm afraid I don't follow.

Sorry, I just meant that the whole test suite is run twice, once in
https://gitlab.com/xen-project/hardware/xen/-/pipelines
and once in
https://gitlab.com/xen-project/xen/-/pipelines
(with just a few tests that are differents)

> Obviously, 5 is arbitrary.  I was thinking of having a scheduled (once
> per day, at 3AM or whenever) running randconfig only with a parallel:20
> or so, so we can make good use of otherwise-idle time.

That sounds like a good idea.

Cheers,

-- 

Anthony Perard | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech
Re: [PATCH 02/12] CI: Remove useless/misleading randconfig jobs
Posted by Andrew Cooper 2 months, 1 week ago
On 11/07/2024 4:50 pm, Anthony PERARD wrote:
> On Thu, Jul 11, 2024 at 04:16:29PM +0100, Andrew Cooper wrote:
>> On 11/07/2024 2:09 pm, Anthony PERARD wrote:
>>> We already have "parallel: 2" on the whole pipeline, give or take, but
>>> those are quick jobs so it might be worth it to run them a few more time
>>> on a pipeline.
>> I'm afraid I don't follow.
> Sorry, I just meant that the whole test suite is run twice, once in
> https://gitlab.com/xen-project/hardware/xen/-/pipelines
> and once in
> https://gitlab.com/xen-project/xen/-/pipelines
> (with just a few tests that are differents)

And the rest.  Every time I re-sync my tree, and probably the same for
the other maintainers.

However, these have nothing on the overhead from patchew, which would be
far more palatable if we didn't essentially throw away the result by not
sending it anywhere useful.

~Andrew