[kvm-unit-tests PATCH v9 31/31] powerpc: gitlab CI update

Thomas Huth thuth at redhat.com
Tue Jun 4 21:01:50 AEST 2024


On 04/05/2024 14.28, Nicholas Piggin wrote:
> This adds testing for the powernv machine, and adds a gitlab-ci test
> group instead of specifying all tests in .gitlab-ci.yml, and adds a
> few new tests (smp, atomics) that are known to work in CI.
> 
> Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
> ---
>   .gitlab-ci.yml        | 30 ++++++++----------------------
>   powerpc/unittests.cfg | 32 ++++++++++++++++++++++++++------
>   2 files changed, 34 insertions(+), 28 deletions(-)
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 23bb69e24..31a2a4e34 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -97,17 +97,10 @@ build-ppc64be:
>    - cd build
>    - ../configure --arch=ppc64 --endian=big --cross-prefix=powerpc64-linux-gnu-
>    - make -j2
> - - ACCEL=tcg ./run_tests.sh
> -      selftest-setup
> -      selftest-migration
> -      selftest-migration-skip
> -      spapr_hcall
> -      rtas-get-time-of-day
> -      rtas-get-time-of-day-base
> -      rtas-set-time-of-day
> -      emulator
> -      | tee results.txt
> - - if grep -q FAIL results.txt ; then exit 1 ; fi
> + - ACCEL=tcg MAX_SMP=8 ./run_tests.sh -g gitlab-ci | tee results.txt
> + - grep -q PASS results.txt && ! grep -q FAIL results.txt
> + - ACCEL=tcg MAX_SMP=8 MACHINE=powernv ./run_tests.sh -g gitlab-ci | tee results.txt
> + - grep -q PASS results.txt && ! grep -q FAIL results.txt
>   
>   build-ppc64le:
>    extends: .intree_template
> @@ -115,17 +108,10 @@ build-ppc64le:
>    - dnf install -y qemu-system-ppc gcc-powerpc64-linux-gnu nmap-ncat
>    - ./configure --arch=ppc64 --endian=little --cross-prefix=powerpc64-linux-gnu-
>    - make -j2
> - - ACCEL=tcg ./run_tests.sh
> -      selftest-setup
> -      selftest-migration
> -      selftest-migration-skip
> -      spapr_hcall
> -      rtas-get-time-of-day
> -      rtas-get-time-of-day-base
> -      rtas-set-time-of-day
> -      emulator
> -      | tee results.txt
> - - if grep -q FAIL results.txt ; then exit 1 ; fi
> + - ACCEL=tcg MAX_SMP=8 ./run_tests.sh -g gitlab-ci | tee results.txt
> + - grep -q PASS results.txt && ! grep -q FAIL results.txt
> + - ACCEL=tcg MAX_SMP=8 MACHINE=powernv ./run_tests.sh -g gitlab-ci | tee results.txt
> + - grep -q PASS results.txt && ! grep -q FAIL results.txt
>   
>   # build-riscv32:
>   # Fedora doesn't package a riscv32 compiler for QEMU. Oh, well.
> diff --git a/powerpc/unittests.cfg b/powerpc/unittests.cfg
> index d767f5d68..6fae688a8 100644
> --- a/powerpc/unittests.cfg
> +++ b/powerpc/unittests.cfg
> @@ -16,17 +16,25 @@
>   file = selftest.elf
>   smp = 2
>   extra_params = -m 1g -append 'setup smp=2 mem=1024'
> -groups = selftest
> +groups = selftest gitlab-ci
>   
>   [selftest-migration]
>   file = selftest-migration.elf
>   machine = pseries
>   groups = selftest migration
>   
> +# QEMU 7.0 (Fedora 37) in gitlab CI has known migration bugs in TCG, so
> +# make a kvm-only version for CI
> +[selftest-migration-ci]
> +file = selftest-migration.elf
> +machine = pseries
> +groups = nodefault selftest migration gitlab-ci
> +accel = kvm
> +
>   [selftest-migration-skip]
>   file = selftest-migration.elf
>   machine = pseries
> -groups = selftest migration
> +groups = selftest migration gitlab-ci
>   extra_params = -append "skip"
>   
>   [migration-memory]
> @@ -37,6 +45,7 @@ groups = migration
>   [spapr_hcall]
>   file = spapr_hcall.elf
>   machine = pseries
> +groups = gitlab-ci
>   
>   [spapr_vpa]
>   file = spapr_vpa.elf
> @@ -47,38 +56,43 @@ file = rtas.elf
>   machine = pseries
>   timeout = 5
>   extra_params = -append "get-time-of-day date=$(date +%s)"
> -groups = rtas
> +groups = rtas gitlab-ci
>   
>   [rtas-get-time-of-day-base]
>   file = rtas.elf
>   machine = pseries
>   timeout = 5
>   extra_params = -rtc base="2006-06-17" -append "get-time-of-day date=$(date --date="2006-06-17 UTC" +%s)"
> -groups = rtas
> +groups = rtas gitlab-ci
>   
>   [rtas-set-time-of-day]
>   file = rtas.elf
>   machine = pseries
>   extra_params = -append "set-time-of-day"
>   timeout = 5
> -groups = rtas
> +groups = rtas gitlab-ci
>   
>   [emulator]
>   file = emulator.elf
> +groups = gitlab-ci
>   
> +# QEMU 7.0 (Fedora 37) in gitlab CI fails this
>   [interrupts]
>   file = interrupts.elf
>   
> +# QEMU 7.0 (Fedora 37) in gitlab CI fails this
>   [mmu]
>   file = mmu.elf
>   smp = $MAX_SMP
>   
> +# QEMU 7.0 (Fedora 37) in gitlab CI fails this
>   [pmu]
>   file = pmu.elf
>   
>   [smp]
>   file = smp.elf
>   smp = 2
> +groups = gitlab-ci
>   
>   [smp-smt]
>   file = smp.elf
> @@ -92,16 +106,19 @@ accel = tcg,thread=single
>   
>   [atomics]
>   file = atomics.elf
> +groups = gitlab-ci
>   
>   [atomics-migration]
>   file = atomics.elf
>   machine = pseries
>   extra_params = -append "migration -m"
> -groups = migration
> +groups = migration gitlab-ci
>   
> +# QEMU 7.0 (Fedora 37) in gitlab CI fails this
>   [timebase]
>   file = timebase.elf
>   
> +# QEMU 7.0 (Fedora 37) in gitlab CI fails this
>   [timebase-icount]
>   file = timebase.elf
>   accel = tcg
> @@ -115,14 +132,17 @@ smp = 2,threads=2
>   extra_params = -machine cap-htm=on -append "h_cede_tm"
>   groups = h_cede_tm
>   
> +# QEMU 7.0 (Fedora 37) in gitlab CI fails this
>   [sprs]
>   file = sprs.elf
>   
> +# QEMU 7.0 (Fedora 37) in gitlab CI fails this
>   [sprs-migration]
>   file = sprs.elf
>   machine = pseries
>   extra_params = -append '-w'
>   groups = migration

Have any of the failures been fixed in newer versions of QEMU?
If so, you could also update the ppc jobs to fedora:40:

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -91,6 +91,7 @@ build-arm:
  
  build-ppc64be:
   extends: .outoftree_template
+ image: fedora:40
   script:
   - dnf install -y qemu-system-ppc gcc-powerpc64-linux-gnu nmap-ncat
   - mkdir build
@@ -111,6 +112,7 @@ build-ppc64be:
  
  build-ppc64le:
   extends: .intree_template
+ image: fedora:40
   script:
   - dnf install -y qemu-system-ppc gcc-powerpc64-linux-gnu nmap-ncat
   - ./configure --arch=ppc64 --endian=little --cross-prefix=powerpc64-linux-gnu-

I also had a patch somewhere that updates all jobs, it just needs some
polishing to get finished ...  maybe a good point in time to do this now.

  Thomas



More information about the Linuxppc-dev mailing list