xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] automation: improve Arm coverage
@ 2024-04-23 16:11 Michal Orzel
  2024-04-23 16:11 ` [PATCH 1/3] automation: Drop some of the non-debug variants of the same Arm jobs Michal Orzel
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Michal Orzel @ 2024-04-23 16:11 UTC (permalink / raw)
  To: xen-devel; +Cc: Michal Orzel, Doug Goldstein, Stefano Stabellini

This came up as part of the following discussion:
https://lore.kernel.org/xen-devel/alpine.DEB.2.22.394.2402291108290.853156@ubuntu-linux-20-04-desktop/

Michal Orzel (3):
  automation: Drop some of the non-debug variants of the same Arm jobs
  automation: Add arm{64,32} earlyprintk jobs
  automation: Add arm64 test for running Xen with GICv3

 automation/gitlab-ci/build.yaml               | 41 ++++----------
 automation/gitlab-ci/test.yaml                | 56 ++++++-------------
 .../scripts/qemu-smoke-dom0less-arm32.sh      |  7 +++
 .../scripts/qemu-smoke-dom0less-arm64.sh      | 24 ++++++--
 4 files changed, 52 insertions(+), 76 deletions(-)

-- 
2.25.1



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/3] automation: Drop some of the non-debug variants of the same Arm jobs
  2024-04-23 16:11 [PATCH 0/3] automation: improve Arm coverage Michal Orzel
@ 2024-04-23 16:11 ` Michal Orzel
  2024-04-24 23:28   ` Stefano Stabellini
  2024-04-23 16:11 ` [PATCH 2/3] automation: Add arm{64,32} earlyprintk jobs Michal Orzel
  2024-04-23 16:11 ` [PATCH 3/3] automation: Add arm64 test for running Xen with GICv3 Michal Orzel
  2 siblings, 1 reply; 7+ messages in thread
From: Michal Orzel @ 2024-04-23 16:11 UTC (permalink / raw)
  To: xen-devel; +Cc: Michal Orzel, Doug Goldstein, Stefano Stabellini

To save some bandwith that can be later on used to increase the test
coverage by adding new tests, drop the following non-debug test/build
jobs existing in both debug and non-debug variants:
 - static memory (arm64, arm32)
 - static shared memory (arm64)
 - static heap (arm64)
 - boot cpupools (arm64)
 - gzip (arm32)

More generic tests existing in both variants were left unmodified.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 automation/gitlab-ci/build.yaml | 38 --------------------------
 automation/gitlab-ci/test.yaml  | 48 ---------------------------------
 2 files changed, 86 deletions(-)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index aac29ee13ab6..f3c934471f32 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -392,16 +392,6 @@ debian-bookworm-gcc-arm32-debug-randconfig:
     HYPERVISOR_ONLY: y
     RANDCONFIG: y
 
-debian-bookworm-gcc-arm32-staticmem:
-  extends: .gcc-arm32-cross-build
-  variables:
-    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
-    HYPERVISOR_ONLY: y
-    EXTRA_XEN_CONFIG: |
-      CONFIG_EXPERT=y
-      CONFIG_UNSUPPORTED=y
-      CONFIG_STATIC_MEMORY=y
-
 debian-bookworm-gcc-arm32-debug-staticmem:
   extends: .gcc-arm32-cross-build-debug
   variables:
@@ -458,15 +448,6 @@ alpine-3.18-gcc-debug-arm64-randconfig:
     CONTAINER: alpine:3.18-arm64v8
     RANDCONFIG: y
 
-alpine-3.18-gcc-arm64-staticmem:
-  extends: .gcc-arm64-build
-  variables:
-    CONTAINER: alpine:3.18-arm64v8
-    EXTRA_XEN_CONFIG: |
-      CONFIG_EXPERT=y
-      CONFIG_UNSUPPORTED=y
-      CONFIG_STATIC_MEMORY=y
-
 alpine-3.18-gcc-debug-arm64-staticmem:
   extends: .gcc-arm64-build-debug
   variables:
@@ -476,15 +457,6 @@ alpine-3.18-gcc-debug-arm64-staticmem:
       CONFIG_UNSUPPORTED=y
       CONFIG_STATIC_MEMORY=y
 
-alpine-3.18-gcc-arm64-static-shared-mem:
-  extends: .gcc-arm64-build
-  variables:
-    CONTAINER: alpine:3.18-arm64v8
-    EXTRA_XEN_CONFIG: |
-      CONFIG_UNSUPPORTED=y
-      CONFIG_STATIC_MEMORY=y
-      CONFIG_STATIC_SHM=y
-
 alpine-3.18-gcc-debug-arm64-static-shared-mem:
   extends: .gcc-arm64-build-debug
   variables:
@@ -494,16 +466,6 @@ alpine-3.18-gcc-debug-arm64-static-shared-mem:
       CONFIG_STATIC_MEMORY=y
       CONFIG_STATIC_SHM=y
 
-alpine-3.18-gcc-arm64-boot-cpupools:
-  extends: .gcc-arm64-build
-  variables:
-    CONTAINER: alpine:3.18-arm64v8
-    EXTRA_XEN_CONFIG: |
-      CONFIG_EXPERT=y
-      CONFIG_UNSUPPORTED=y
-      CONFIG_SCHED_NULL=y
-      CONFIG_BOOT_TIME_CPUPOOLS=y
-
 alpine-3.18-gcc-debug-arm64-boot-cpupools:
   extends: .gcc-arm64-build-debug
   variables:
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 8b7b2e4da92d..55a7831ad292 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -255,14 +255,6 @@ qemu-smoke-dom0less-arm64-gcc-debug:
     - *arm64-test-needs
     - alpine-3.18-gcc-debug-arm64
 
-qemu-smoke-dom0less-arm64-gcc-staticmem:
-  extends: .qemu-arm64
-  script:
-    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-mem 2>&1 | tee ${LOGFILE}
-  needs:
-    - *arm64-test-needs
-    - alpine-3.18-gcc-arm64-staticmem
-
 qemu-smoke-dom0less-arm64-gcc-debug-staticmem:
   extends: .qemu-arm64
   script:
@@ -271,14 +263,6 @@ qemu-smoke-dom0less-arm64-gcc-debug-staticmem:
     - *arm64-test-needs
     - alpine-3.18-gcc-debug-arm64-staticmem
 
-qemu-smoke-dom0less-arm64-gcc-staticheap:
- extends: .qemu-arm64
- script:
-   - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-heap 2>&1 | tee ${LOGFILE}
- needs:
-   - *arm64-test-needs
-   - alpine-3.18-gcc-arm64
-
 qemu-smoke-dom0less-arm64-gcc-debug-staticheap:
  extends: .qemu-arm64
  script:
@@ -287,14 +271,6 @@ qemu-smoke-dom0less-arm64-gcc-debug-staticheap:
    - *arm64-test-needs
    - alpine-3.18-gcc-debug-arm64
 
-qemu-smoke-dom0less-arm64-gcc-static-shared-mem:
-  extends: .qemu-arm64
-  script:
-    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-shared-mem 2>&1 | tee ${LOGFILE}
-  needs:
-    - *arm64-test-needs
-    - alpine-3.18-gcc-arm64-static-shared-mem
-
 qemu-smoke-dom0less-arm64-gcc-debug-static-shared-mem:
   extends: .qemu-arm64
   script:
@@ -303,14 +279,6 @@ qemu-smoke-dom0less-arm64-gcc-debug-static-shared-mem:
     - *arm64-test-needs
     - alpine-3.18-gcc-debug-arm64-static-shared-mem
 
-qemu-smoke-dom0less-arm64-gcc-boot-cpupools:
-  extends: .qemu-arm64
-  script:
-    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh boot-cpupools 2>&1 | tee ${LOGFILE}
-  needs:
-    - *arm64-test-needs
-    - alpine-3.18-gcc-arm64-boot-cpupools
-
 qemu-smoke-dom0less-arm64-gcc-debug-boot-cpupools:
   extends: .qemu-arm64
   script:
@@ -359,14 +327,6 @@ qemu-smoke-dom0less-arm32-gcc-debug:
     - *arm32-test-needs
     - debian-bookworm-gcc-arm32-debug
 
-qemu-smoke-dom0less-arm32-gcc-staticmem:
-  extends: .qemu-arm32
-  script:
-    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh static-mem 2>&1 | tee ${LOGFILE}
-  needs:
-    - *arm32-test-needs
-    - debian-bookworm-gcc-arm32-staticmem
-
 qemu-smoke-dom0less-arm32-gcc-debug-staticmem:
   extends: .qemu-arm32
   script:
@@ -375,14 +335,6 @@ qemu-smoke-dom0less-arm32-gcc-debug-staticmem:
     - *arm32-test-needs
     - debian-bookworm-gcc-arm32-debug-staticmem
 
-qemu-smoke-dom0less-arm32-gcc-gzip:
-  extends: .qemu-arm32
-  script:
-    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh gzip 2>&1 | tee ${LOGFILE}
-  needs:
-    - *arm32-test-needs
-    - debian-bookworm-gcc-arm32
-
 qemu-smoke-dom0less-arm32-gcc-debug-gzip:
   extends: .qemu-arm32
   script:
-- 
2.25.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/3] automation: Add arm{64,32} earlyprintk jobs
  2024-04-23 16:11 [PATCH 0/3] automation: improve Arm coverage Michal Orzel
  2024-04-23 16:11 ` [PATCH 1/3] automation: Drop some of the non-debug variants of the same Arm jobs Michal Orzel
@ 2024-04-23 16:11 ` Michal Orzel
  2024-04-24 23:51   ` Stefano Stabellini
  2024-04-23 16:11 ` [PATCH 3/3] automation: Add arm64 test for running Xen with GICv3 Michal Orzel
  2 siblings, 1 reply; 7+ messages in thread
From: Michal Orzel @ 2024-04-23 16:11 UTC (permalink / raw)
  To: xen-devel; +Cc: Michal Orzel, Doug Goldstein, Stefano Stabellini

Introduce qemu based Arm earlyprintk test and build jobs to cover this
feature in debug variant. The tests simply check for the presence of the
last message printed by the bootstrap code before entering the C world.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 automation/gitlab-ci/build.yaml                 | 17 +++++++++++++++++
 automation/gitlab-ci/test.yaml                  | 16 ++++++++++++++++
 automation/scripts/qemu-smoke-dom0less-arm32.sh |  7 +++++++
 automation/scripts/qemu-smoke-dom0less-arm64.sh |  5 +++++
 4 files changed, 45 insertions(+)

diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index f3c934471f32..49d6265ad5b4 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -402,6 +402,15 @@ debian-bookworm-gcc-arm32-debug-staticmem:
       CONFIG_UNSUPPORTED=y
       CONFIG_STATIC_MEMORY=y
 
+debian-bookworm-gcc-arm32-debug-earlyprintk:
+  extends: .gcc-arm32-cross-build-debug
+  variables:
+    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
+    HYPERVISOR_ONLY: y
+    EXTRA_XEN_CONFIG: |
+      CONFIG_EARLY_UART_CHOICE_PL011=y
+      CONFIG_EARLY_UART_BASE_ADDRESS=0x9000000
+
 # Arm builds
 
 debian-bookworm-gcc-arm64:
@@ -473,6 +482,14 @@ alpine-3.18-gcc-debug-arm64-boot-cpupools:
     EXTRA_XEN_CONFIG: |
       CONFIG_BOOT_TIME_CPUPOOLS=y
 
+alpine-3.18-gcc-debug-arm64-earlyprintk:
+  extends: .gcc-arm64-build-debug
+  variables:
+    CONTAINER: alpine:3.18-arm64v8
+    EXTRA_XEN_CONFIG: |
+      CONFIG_EARLY_UART_CHOICE_PL011=y
+      CONFIG_EARLY_UART_BASE_ADDRESS=0x9000000
+
 # RISC-V 64 cross-build
 .riscv-fixed-randconfig:
   variables: &riscv-fixed-randconfig
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 55a7831ad292..1e5d86763f6c 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -287,6 +287,14 @@ qemu-smoke-dom0less-arm64-gcc-debug-boot-cpupools:
     - *arm64-test-needs
     - alpine-3.18-gcc-debug-arm64-boot-cpupools
 
+qemu-smoke-dom0less-arm64-gcc-debug-earlyprintk:
+  extends: .qemu-arm64
+  script:
+    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh earlyprintk 2>&1 | tee ${LOGFILE}
+  needs:
+    - *arm64-test-needs
+    - alpine-3.18-gcc-debug-arm64-earlyprintk
+
 qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
   extends: .qemu-arm64
   script:
@@ -359,6 +367,14 @@ qemu-smoke-dom0less-arm32-gcc-debug-without-dom0:
     - *arm32-test-needs
     - debian-bookworm-gcc-arm32-debug
 
+qemu-smoke-dom0less-arm32-gcc-debug-earlyprintk:
+  extends: .qemu-arm32
+  script:
+    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh earlyprintk 2>&1 | tee ${LOGFILE}
+  needs:
+    - *arm32-test-needs
+    - debian-bookworm-gcc-arm32-debug-earlyprintk
+
 qemu-alpine-x86_64-gcc:
   extends: .qemu-x86-64
   script:
diff --git a/automation/scripts/qemu-smoke-dom0less-arm32.sh b/automation/scripts/qemu-smoke-dom0less-arm32.sh
index e31b6b9014e1..1e2b939aadf7 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm32.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm32.sh
@@ -53,6 +53,13 @@ echo \"${passed}\"
 "
 fi
 
+if [[ "${test_variant}" == "earlyprintk" ]]; then
+    # Clear dom0 prompt
+    dom0_prompt=""
+    # Last early printk message before entering C world
+    passed="\- Ready \-"
+fi
+
 # dom0/domU rootfs
 # We are using the same rootfs for dom0 and domU. The only difference is
 # that for the former, we set explictly rdinit to /bin/sh, whereas for the
diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
index e748b8ef1699..fc943a1a622c 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
@@ -61,6 +61,11 @@ fi
 "
 fi
 
+if [[ "${test_variant}" == "earlyprintk" ]]; then
+    # Last early printk message before entering C world
+    passed="\- Ready \-"
+fi
+
 # XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
 curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
 ./binaries/qemu-system-aarch64 \
-- 
2.25.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/3] automation: Add arm64 test for running Xen with GICv3
  2024-04-23 16:11 [PATCH 0/3] automation: improve Arm coverage Michal Orzel
  2024-04-23 16:11 ` [PATCH 1/3] automation: Drop some of the non-debug variants of the same Arm jobs Michal Orzel
  2024-04-23 16:11 ` [PATCH 2/3] automation: Add arm{64,32} earlyprintk jobs Michal Orzel
@ 2024-04-23 16:11 ` Michal Orzel
  2024-04-24 23:52   ` Stefano Stabellini
  2 siblings, 1 reply; 7+ messages in thread
From: Michal Orzel @ 2024-04-23 16:11 UTC (permalink / raw)
  To: xen-devel; +Cc: Michal Orzel, Doug Goldstein, Stefano Stabellini

At the moment, all the Arm64 Qemu tests use GICv2 which is the default
GIC version used by Qemu. Improve the coverage by adding a new test in
which Qemu will be configured to have GICv3.

Rename host device tree name to "virt.dtb" to be GIC version agnostic.
Use "gic-version" Qemu option to select the version to use. Unless the
test variant is set to "gicv3", version 2 will be used.

Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
 automation/gitlab-ci/test.yaml                |  8 ++++++++
 .../scripts/qemu-smoke-dom0less-arm64.sh      | 19 ++++++++++++++-----
 2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 1e5d86763f6c..ad249fa0a5d9 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -255,6 +255,14 @@ qemu-smoke-dom0less-arm64-gcc-debug:
     - *arm64-test-needs
     - alpine-3.18-gcc-debug-arm64
 
+qemu-smoke-dom0less-arm64-gcc-debug-gicv3:
+  extends: .qemu-arm64
+  script:
+    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh gicv3 2>&1 | tee ${LOGFILE}
+  needs:
+    - *arm64-test-needs
+    - alpine-3.18-gcc-debug-arm64
+
 qemu-smoke-dom0less-arm64-gcc-debug-staticmem:
   extends: .qemu-arm64
   script:
diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
index fc943a1a622c..292c38a56147 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
@@ -4,6 +4,9 @@ set -ex
 
 test_variant=$1
 
+# Default GIC version
+gic_version="2"
+
 if [ -z "${test_variant}" ]; then
     passed="ping test passed"
     domU_check="
@@ -66,16 +69,22 @@ if [[ "${test_variant}" == "earlyprintk" ]]; then
     passed="\- Ready \-"
 fi
 
+if [[ "${test_variant}" == "gicv3" ]]; then
+    gic_version=3
+    passed="${test_variant} test passed"
+    domU_check="echo \"${passed}\""
+fi
+
 # XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
 curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
 ./binaries/qemu-system-aarch64 \
    -machine virtualization=true \
-   -cpu cortex-a57 -machine type=virt \
+   -cpu cortex-a57 -machine type=virt,gic-version=$gic_version \
    -m 2048 -smp 2 -display none \
-   -machine dumpdtb=binaries/virt-gicv2.dtb
+   -machine dumpdtb=binaries/virt.dtb
 
 # XXX disable pl061 to avoid Linux crash
-fdtput binaries/virt-gicv2.dtb -p -t s /pl061@9030000 status disabled
+fdtput binaries/virt.dtb -p -t s /pl061@9030000 status disabled
 
 # Busybox
 mkdir -p initrd
@@ -138,7 +147,7 @@ cd ..
 echo 'MEMORY_START="0x40000000"
 MEMORY_END="0x50000000"
 
-DEVICE_TREE="virt-gicv2.dtb"
+DEVICE_TREE="virt.dtb"
 XEN="xen"
 DOM0_KERNEL="Image"
 DOM0_RAMDISK="dom0-rootfs.cpio.gz"
@@ -200,7 +209,7 @@ echo "  virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"| \
 timeout -k 1 240 \
 ./binaries/qemu-system-aarch64 \
     -machine virtualization=true \
-    -cpu cortex-a57 -machine type=virt \
+    -cpu cortex-a57 -machine type=virt,gic-version=$gic_version \
     -m 2048 -monitor none -serial stdio \
     -smp 2 \
     -no-reboot \
-- 
2.25.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/3] automation: Drop some of the non-debug variants of the same Arm jobs
  2024-04-23 16:11 ` [PATCH 1/3] automation: Drop some of the non-debug variants of the same Arm jobs Michal Orzel
@ 2024-04-24 23:28   ` Stefano Stabellini
  0 siblings, 0 replies; 7+ messages in thread
From: Stefano Stabellini @ 2024-04-24 23:28 UTC (permalink / raw)
  To: Michal Orzel; +Cc: xen-devel, Doug Goldstein, Stefano Stabellini

On Tue, 23 Apr 2024, Michal Orzel wrote:
> To save some bandwith that can be later on used to increase the test
> coverage by adding new tests, drop the following non-debug test/build
> jobs existing in both debug and non-debug variants:
>  - static memory (arm64, arm32)
>  - static shared memory (arm64)
>  - static heap (arm64)
>  - boot cpupools (arm64)
>  - gzip (arm32)
> 
> More generic tests existing in both variants were left unmodified.
> 
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
>  automation/gitlab-ci/build.yaml | 38 --------------------------
>  automation/gitlab-ci/test.yaml  | 48 ---------------------------------
>  2 files changed, 86 deletions(-)
> 
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index aac29ee13ab6..f3c934471f32 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -392,16 +392,6 @@ debian-bookworm-gcc-arm32-debug-randconfig:
>      HYPERVISOR_ONLY: y
>      RANDCONFIG: y
>  
> -debian-bookworm-gcc-arm32-staticmem:
> -  extends: .gcc-arm32-cross-build
> -  variables:
> -    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
> -    HYPERVISOR_ONLY: y
> -    EXTRA_XEN_CONFIG: |
> -      CONFIG_EXPERT=y
> -      CONFIG_UNSUPPORTED=y
> -      CONFIG_STATIC_MEMORY=y
> -
>  debian-bookworm-gcc-arm32-debug-staticmem:
>    extends: .gcc-arm32-cross-build-debug
>    variables:
> @@ -458,15 +448,6 @@ alpine-3.18-gcc-debug-arm64-randconfig:
>      CONTAINER: alpine:3.18-arm64v8
>      RANDCONFIG: y
>  
> -alpine-3.18-gcc-arm64-staticmem:
> -  extends: .gcc-arm64-build
> -  variables:
> -    CONTAINER: alpine:3.18-arm64v8
> -    EXTRA_XEN_CONFIG: |
> -      CONFIG_EXPERT=y
> -      CONFIG_UNSUPPORTED=y
> -      CONFIG_STATIC_MEMORY=y
> -
>  alpine-3.18-gcc-debug-arm64-staticmem:
>    extends: .gcc-arm64-build-debug
>    variables:
> @@ -476,15 +457,6 @@ alpine-3.18-gcc-debug-arm64-staticmem:
>        CONFIG_UNSUPPORTED=y
>        CONFIG_STATIC_MEMORY=y
>  
> -alpine-3.18-gcc-arm64-static-shared-mem:
> -  extends: .gcc-arm64-build
> -  variables:
> -    CONTAINER: alpine:3.18-arm64v8
> -    EXTRA_XEN_CONFIG: |
> -      CONFIG_UNSUPPORTED=y
> -      CONFIG_STATIC_MEMORY=y
> -      CONFIG_STATIC_SHM=y
> -
>  alpine-3.18-gcc-debug-arm64-static-shared-mem:
>    extends: .gcc-arm64-build-debug
>    variables:
> @@ -494,16 +466,6 @@ alpine-3.18-gcc-debug-arm64-static-shared-mem:
>        CONFIG_STATIC_MEMORY=y
>        CONFIG_STATIC_SHM=y
>  
> -alpine-3.18-gcc-arm64-boot-cpupools:
> -  extends: .gcc-arm64-build
> -  variables:
> -    CONTAINER: alpine:3.18-arm64v8
> -    EXTRA_XEN_CONFIG: |
> -      CONFIG_EXPERT=y
> -      CONFIG_UNSUPPORTED=y
> -      CONFIG_SCHED_NULL=y
> -      CONFIG_BOOT_TIME_CPUPOOLS=y
> -
>  alpine-3.18-gcc-debug-arm64-boot-cpupools:
>    extends: .gcc-arm64-build-debug
>    variables:
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 8b7b2e4da92d..55a7831ad292 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -255,14 +255,6 @@ qemu-smoke-dom0less-arm64-gcc-debug:
>      - *arm64-test-needs
>      - alpine-3.18-gcc-debug-arm64
>  
> -qemu-smoke-dom0less-arm64-gcc-staticmem:
> -  extends: .qemu-arm64
> -  script:
> -    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-mem 2>&1 | tee ${LOGFILE}
> -  needs:
> -    - *arm64-test-needs
> -    - alpine-3.18-gcc-arm64-staticmem
> -
>  qemu-smoke-dom0less-arm64-gcc-debug-staticmem:
>    extends: .qemu-arm64
>    script:
> @@ -271,14 +263,6 @@ qemu-smoke-dom0less-arm64-gcc-debug-staticmem:
>      - *arm64-test-needs
>      - alpine-3.18-gcc-debug-arm64-staticmem
>  
> -qemu-smoke-dom0less-arm64-gcc-staticheap:
> - extends: .qemu-arm64
> - script:
> -   - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-heap 2>&1 | tee ${LOGFILE}
> - needs:
> -   - *arm64-test-needs
> -   - alpine-3.18-gcc-arm64
> -
>  qemu-smoke-dom0less-arm64-gcc-debug-staticheap:
>   extends: .qemu-arm64
>   script:
> @@ -287,14 +271,6 @@ qemu-smoke-dom0less-arm64-gcc-debug-staticheap:
>     - *arm64-test-needs
>     - alpine-3.18-gcc-debug-arm64
>  
> -qemu-smoke-dom0less-arm64-gcc-static-shared-mem:
> -  extends: .qemu-arm64
> -  script:
> -    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh static-shared-mem 2>&1 | tee ${LOGFILE}
> -  needs:
> -    - *arm64-test-needs
> -    - alpine-3.18-gcc-arm64-static-shared-mem
> -
>  qemu-smoke-dom0less-arm64-gcc-debug-static-shared-mem:
>    extends: .qemu-arm64
>    script:
> @@ -303,14 +279,6 @@ qemu-smoke-dom0less-arm64-gcc-debug-static-shared-mem:
>      - *arm64-test-needs
>      - alpine-3.18-gcc-debug-arm64-static-shared-mem
>  
> -qemu-smoke-dom0less-arm64-gcc-boot-cpupools:
> -  extends: .qemu-arm64
> -  script:
> -    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh boot-cpupools 2>&1 | tee ${LOGFILE}
> -  needs:
> -    - *arm64-test-needs
> -    - alpine-3.18-gcc-arm64-boot-cpupools
> -
>  qemu-smoke-dom0less-arm64-gcc-debug-boot-cpupools:
>    extends: .qemu-arm64
>    script:
> @@ -359,14 +327,6 @@ qemu-smoke-dom0less-arm32-gcc-debug:
>      - *arm32-test-needs
>      - debian-bookworm-gcc-arm32-debug
>  
> -qemu-smoke-dom0less-arm32-gcc-staticmem:
> -  extends: .qemu-arm32
> -  script:
> -    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh static-mem 2>&1 | tee ${LOGFILE}
> -  needs:
> -    - *arm32-test-needs
> -    - debian-bookworm-gcc-arm32-staticmem
> -
>  qemu-smoke-dom0less-arm32-gcc-debug-staticmem:
>    extends: .qemu-arm32
>    script:
> @@ -375,14 +335,6 @@ qemu-smoke-dom0less-arm32-gcc-debug-staticmem:
>      - *arm32-test-needs
>      - debian-bookworm-gcc-arm32-debug-staticmem
>  
> -qemu-smoke-dom0less-arm32-gcc-gzip:
> -  extends: .qemu-arm32
> -  script:
> -    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh gzip 2>&1 | tee ${LOGFILE}
> -  needs:
> -    - *arm32-test-needs
> -    - debian-bookworm-gcc-arm32
> -
>  qemu-smoke-dom0less-arm32-gcc-debug-gzip:
>    extends: .qemu-arm32
>    script:
> -- 
> 2.25.1
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 2/3] automation: Add arm{64,32} earlyprintk jobs
  2024-04-23 16:11 ` [PATCH 2/3] automation: Add arm{64,32} earlyprintk jobs Michal Orzel
@ 2024-04-24 23:51   ` Stefano Stabellini
  0 siblings, 0 replies; 7+ messages in thread
From: Stefano Stabellini @ 2024-04-24 23:51 UTC (permalink / raw)
  To: Michal Orzel; +Cc: xen-devel, Doug Goldstein, Stefano Stabellini

On Tue, 23 Apr 2024, Michal Orzel wrote:
> Introduce qemu based Arm earlyprintk test and build jobs to cover this
> feature in debug variant. The tests simply check for the presence of the
> last message printed by the bootstrap code before entering the C world.
> 
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
>  automation/gitlab-ci/build.yaml                 | 17 +++++++++++++++++
>  automation/gitlab-ci/test.yaml                  | 16 ++++++++++++++++
>  automation/scripts/qemu-smoke-dom0less-arm32.sh |  7 +++++++
>  automation/scripts/qemu-smoke-dom0less-arm64.sh |  5 +++++
>  4 files changed, 45 insertions(+)
> 
> diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
> index f3c934471f32..49d6265ad5b4 100644
> --- a/automation/gitlab-ci/build.yaml
> +++ b/automation/gitlab-ci/build.yaml
> @@ -402,6 +402,15 @@ debian-bookworm-gcc-arm32-debug-staticmem:
>        CONFIG_UNSUPPORTED=y
>        CONFIG_STATIC_MEMORY=y
>  
> +debian-bookworm-gcc-arm32-debug-earlyprintk:
> +  extends: .gcc-arm32-cross-build-debug
> +  variables:
> +    CONTAINER: debian:bookworm-arm64v8-arm32-gcc
> +    HYPERVISOR_ONLY: y
> +    EXTRA_XEN_CONFIG: |
> +      CONFIG_EARLY_UART_CHOICE_PL011=y
> +      CONFIG_EARLY_UART_BASE_ADDRESS=0x9000000
> +
>  # Arm builds
>  
>  debian-bookworm-gcc-arm64:
> @@ -473,6 +482,14 @@ alpine-3.18-gcc-debug-arm64-boot-cpupools:
>      EXTRA_XEN_CONFIG: |
>        CONFIG_BOOT_TIME_CPUPOOLS=y
>  
> +alpine-3.18-gcc-debug-arm64-earlyprintk:
> +  extends: .gcc-arm64-build-debug
> +  variables:
> +    CONTAINER: alpine:3.18-arm64v8
> +    EXTRA_XEN_CONFIG: |
> +      CONFIG_EARLY_UART_CHOICE_PL011=y
> +      CONFIG_EARLY_UART_BASE_ADDRESS=0x9000000
> +
>  # RISC-V 64 cross-build
>  .riscv-fixed-randconfig:
>    variables: &riscv-fixed-randconfig
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 55a7831ad292..1e5d86763f6c 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -287,6 +287,14 @@ qemu-smoke-dom0less-arm64-gcc-debug-boot-cpupools:
>      - *arm64-test-needs
>      - alpine-3.18-gcc-debug-arm64-boot-cpupools
>  
> +qemu-smoke-dom0less-arm64-gcc-debug-earlyprintk:
> +  extends: .qemu-arm64
> +  script:
> +    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh earlyprintk 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *arm64-test-needs
> +    - alpine-3.18-gcc-debug-arm64-earlyprintk
> +
>  qemu-xtf-dom0less-arm64-gcc-hyp-xen-version:
>    extends: .qemu-arm64
>    script:
> @@ -359,6 +367,14 @@ qemu-smoke-dom0less-arm32-gcc-debug-without-dom0:
>      - *arm32-test-needs
>      - debian-bookworm-gcc-arm32-debug
>  
> +qemu-smoke-dom0less-arm32-gcc-debug-earlyprintk:
> +  extends: .qemu-arm32
> +  script:
> +    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh earlyprintk 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *arm32-test-needs
> +    - debian-bookworm-gcc-arm32-debug-earlyprintk
> +
>  qemu-alpine-x86_64-gcc:
>    extends: .qemu-x86-64
>    script:
> diff --git a/automation/scripts/qemu-smoke-dom0less-arm32.sh b/automation/scripts/qemu-smoke-dom0less-arm32.sh
> index e31b6b9014e1..1e2b939aadf7 100755
> --- a/automation/scripts/qemu-smoke-dom0less-arm32.sh
> +++ b/automation/scripts/qemu-smoke-dom0less-arm32.sh
> @@ -53,6 +53,13 @@ echo \"${passed}\"
>  "
>  fi
>  
> +if [[ "${test_variant}" == "earlyprintk" ]]; then
> +    # Clear dom0 prompt
> +    dom0_prompt=""
> +    # Last early printk message before entering C world
> +    passed="\- Ready \-"
> +fi
> +
>  # dom0/domU rootfs
>  # We are using the same rootfs for dom0 and domU. The only difference is
>  # that for the former, we set explictly rdinit to /bin/sh, whereas for the
> diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
> index e748b8ef1699..fc943a1a622c 100755
> --- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
> +++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
> @@ -61,6 +61,11 @@ fi
>  "
>  fi
>  
> +if [[ "${test_variant}" == "earlyprintk" ]]; then
> +    # Last early printk message before entering C world
> +    passed="\- Ready \-"
> +fi
> +
>  # XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
>  curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
>  ./binaries/qemu-system-aarch64 \
> -- 
> 2.25.1
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 3/3] automation: Add arm64 test for running Xen with GICv3
  2024-04-23 16:11 ` [PATCH 3/3] automation: Add arm64 test for running Xen with GICv3 Michal Orzel
@ 2024-04-24 23:52   ` Stefano Stabellini
  0 siblings, 0 replies; 7+ messages in thread
From: Stefano Stabellini @ 2024-04-24 23:52 UTC (permalink / raw)
  To: Michal Orzel; +Cc: xen-devel, Doug Goldstein, Stefano Stabellini

On Tue, 23 Apr 2024, Michal Orzel wrote:
> At the moment, all the Arm64 Qemu tests use GICv2 which is the default
> GIC version used by Qemu. Improve the coverage by adding a new test in
> which Qemu will be configured to have GICv3.
> 
> Rename host device tree name to "virt.dtb" to be GIC version agnostic.
> Use "gic-version" Qemu option to select the version to use. Unless the
> test variant is set to "gicv3", version 2 will be used.
> 
> Signed-off-by: Michal Orzel <michal.orzel@amd.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
>  automation/gitlab-ci/test.yaml                |  8 ++++++++
>  .../scripts/qemu-smoke-dom0less-arm64.sh      | 19 ++++++++++++++-----
>  2 files changed, 22 insertions(+), 5 deletions(-)
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index 1e5d86763f6c..ad249fa0a5d9 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -255,6 +255,14 @@ qemu-smoke-dom0less-arm64-gcc-debug:
>      - *arm64-test-needs
>      - alpine-3.18-gcc-debug-arm64
>  
> +qemu-smoke-dom0less-arm64-gcc-debug-gicv3:
> +  extends: .qemu-arm64
> +  script:
> +    - ./automation/scripts/qemu-smoke-dom0less-arm64.sh gicv3 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - *arm64-test-needs
> +    - alpine-3.18-gcc-debug-arm64
> +
>  qemu-smoke-dom0less-arm64-gcc-debug-staticmem:
>    extends: .qemu-arm64
>    script:
> diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
> index fc943a1a622c..292c38a56147 100755
> --- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
> +++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
> @@ -4,6 +4,9 @@ set -ex
>  
>  test_variant=$1
>  
> +# Default GIC version
> +gic_version="2"
> +
>  if [ -z "${test_variant}" ]; then
>      passed="ping test passed"
>      domU_check="
> @@ -66,16 +69,22 @@ if [[ "${test_variant}" == "earlyprintk" ]]; then
>      passed="\- Ready \-"
>  fi
>  
> +if [[ "${test_variant}" == "gicv3" ]]; then
> +    gic_version=3
> +    passed="${test_variant} test passed"
> +    domU_check="echo \"${passed}\""
> +fi
> +
>  # XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
>  curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
>  ./binaries/qemu-system-aarch64 \
>     -machine virtualization=true \
> -   -cpu cortex-a57 -machine type=virt \
> +   -cpu cortex-a57 -machine type=virt,gic-version=$gic_version \
>     -m 2048 -smp 2 -display none \
> -   -machine dumpdtb=binaries/virt-gicv2.dtb
> +   -machine dumpdtb=binaries/virt.dtb
>  
>  # XXX disable pl061 to avoid Linux crash
> -fdtput binaries/virt-gicv2.dtb -p -t s /pl061@9030000 status disabled
> +fdtput binaries/virt.dtb -p -t s /pl061@9030000 status disabled
>  
>  # Busybox
>  mkdir -p initrd
> @@ -138,7 +147,7 @@ cd ..
>  echo 'MEMORY_START="0x40000000"
>  MEMORY_END="0x50000000"
>  
> -DEVICE_TREE="virt-gicv2.dtb"
> +DEVICE_TREE="virt.dtb"
>  XEN="xen"
>  DOM0_KERNEL="Image"
>  DOM0_RAMDISK="dom0-rootfs.cpio.gz"
> @@ -200,7 +209,7 @@ echo "  virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"| \
>  timeout -k 1 240 \
>  ./binaries/qemu-system-aarch64 \
>      -machine virtualization=true \
> -    -cpu cortex-a57 -machine type=virt \
> +    -cpu cortex-a57 -machine type=virt,gic-version=$gic_version \
>      -m 2048 -monitor none -serial stdio \
>      -smp 2 \
>      -no-reboot \
> -- 
> 2.25.1
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-04-24 23:53 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-23 16:11 [PATCH 0/3] automation: improve Arm coverage Michal Orzel
2024-04-23 16:11 ` [PATCH 1/3] automation: Drop some of the non-debug variants of the same Arm jobs Michal Orzel
2024-04-24 23:28   ` Stefano Stabellini
2024-04-23 16:11 ` [PATCH 2/3] automation: Add arm{64,32} earlyprintk jobs Michal Orzel
2024-04-24 23:51   ` Stefano Stabellini
2024-04-23 16:11 ` [PATCH 3/3] automation: Add arm64 test for running Xen with GICv3 Michal Orzel
2024-04-24 23:52   ` Stefano Stabellini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).