Message ID | 20230214153842.15637-4-michal.orzel@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | automation: dom0less arm32 testing | expand |
On Tue, 14 Feb 2023, Michal Orzel wrote: > Add a new test job qemu-smoke-dom0less-arm32-gcc-staticmem in debug > and non-debug variant that will execute qemu-smoke-dom0less-arm32.sh > script to test static memory allocation feature. The test case itself > is directly taken from dom0less arm64 testing. > > Populate build jobs to compile Xen with config options necessary to > enable static memory feature. Populate test jobs passing "static-mem" > as a test variant. The test configures domU with a static memory region > (direct-mapped) and adds a check using /proc/iomem to determine the > memory region marked as "System RAM". > > Signed-off-by: Michal Orzel <michal.orzel@amd.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > --- > Changes in v2: > - take into account new container for arm32 cross builds > - drop Rb as a result of code changes > --- > automation/gitlab-ci/build.yaml | 20 +++++++++++++++++++ > automation/gitlab-ci/test.yaml | 16 +++++++++++++++ > .../scripts/qemu-smoke-dom0less-arm32.sh | 17 ++++++++++++++++ > 3 files changed, 53 insertions(+) > > diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml > index f8e156e0a994..079e9b73f659 100644 > --- a/automation/gitlab-ci/build.yaml > +++ b/automation/gitlab-ci/build.yaml > @@ -565,6 +565,26 @@ debian-unstable-gcc-arm32-debug-randconfig: > HYPERVISOR_ONLY: y > RANDCONFIG: y > > +debian-unstable-gcc-arm32-staticmem: > + extends: .gcc-arm32-cross-build > + variables: > + CONTAINER: debian:unstable-arm64v8-arm32-gcc > + HYPERVISOR_ONLY: y > + EXTRA_XEN_CONFIG: | > + CONFIG_EXPERT=y > + CONFIG_UNSUPPORTED=y > + CONFIG_STATIC_MEMORY=y > + > +debian-unstable-gcc-arm32-debug-staticmem: > + extends: .gcc-arm32-cross-build-debug > + variables: > + CONTAINER: debian:unstable-arm64v8-arm32-gcc > + HYPERVISOR_ONLY: y > + EXTRA_XEN_CONFIG: | > + CONFIG_EXPERT=y > + CONFIG_UNSUPPORTED=y > + CONFIG_STATIC_MEMORY=y > + > # Arm builds > > debian-unstable-gcc-arm64: > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml > index 84ab1fee50a4..c2bcc5d4d3e5 100644 > --- a/automation/gitlab-ci/test.yaml > +++ b/automation/gitlab-ci/test.yaml > @@ -226,6 +226,22 @@ qemu-smoke-dom0less-arm32-gcc-debug: > - *arm32-test-needs > - debian-unstable-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-unstable-gcc-arm32-staticmem > + > +qemu-smoke-dom0less-arm32-gcc-debug-staticmem: > + extends: .qemu-arm32 > + script: > + - ./automation/scripts/qemu-smoke-dom0less-arm32.sh static-mem 2>&1 | tee ${LOGFILE} > + needs: > + - *arm32-test-needs > + - debian-unstable-gcc-arm32-debug-staticmem > + > 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 e3f2b28f3f89..bd89a3f8b45e 100755 > --- a/automation/scripts/qemu-smoke-dom0less-arm32.sh > +++ b/automation/scripts/qemu-smoke-dom0less-arm32.sh > @@ -20,6 +20,19 @@ echo \"${passed}\" > " > fi > > +if [[ "${test_variant}" == "static-mem" ]]; then > + # Memory range that is statically allocated to domU1 > + domu_base="0x50000000" > + domu_size="0x20000000" > + passed="${test_variant} test passed" > + domU_check=" > +mem_range=$(printf \"%08x-%08x\" ${domu_base} $(( ${domu_base} + ${domu_size} - 1 ))) > +if grep -q -x \"\${mem_range} : System RAM\" /proc/iomem; then > + echo \"${passed}\" > +fi > +" > +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 > @@ -72,6 +85,10 @@ BOOT_CMD="bootm" > UBOOT_SOURCE="boot.source" > UBOOT_SCRIPT="boot.scr"' > config > > +if [[ "${test_variant}" == "static-mem" ]]; then > + echo -e "\nDOMU_STATIC_MEM[0]=\"${domu_base} ${domu_size}\"" >> config > +fi > + > rm -rf imagebuilder > git clone https://gitlab.com/ViryaOS/imagebuilder > bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config > -- > 2.25.1 >
On 14/02/2023 3:38 pm, Michal Orzel wrote: > diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml > index f8e156e0a994..079e9b73f659 100644 > --- a/automation/gitlab-ci/build.yaml > +++ b/automation/gitlab-ci/build.yaml > @@ -565,6 +565,26 @@ debian-unstable-gcc-arm32-debug-randconfig: > HYPERVISOR_ONLY: y > RANDCONFIG: y > > +debian-unstable-gcc-arm32-staticmem: > + extends: .gcc-arm32-cross-build > + variables: > + CONTAINER: debian:unstable-arm64v8-arm32-gcc > + HYPERVISOR_ONLY: y > + EXTRA_XEN_CONFIG: | > + CONFIG_EXPERT=y > + CONFIG_UNSUPPORTED=y > + CONFIG_STATIC_MEMORY=y This is absurd. Either 1) static mem is important enough to warrant testing. By adding it to CI, you have caused the maintainers to accept the responsibility of fixing bugs found in it, making it by definition supported, or 2) it is not important enough to warrant testing, at which point it's not ok to be using XenProject's limited testing resource like this, and it's not ok to be a blocking test. There is no such thing as an unsupported feature running in CI. It is a complete contradiction in terms. ~Andrew
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index f8e156e0a994..079e9b73f659 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -565,6 +565,26 @@ debian-unstable-gcc-arm32-debug-randconfig: HYPERVISOR_ONLY: y RANDCONFIG: y +debian-unstable-gcc-arm32-staticmem: + extends: .gcc-arm32-cross-build + variables: + CONTAINER: debian:unstable-arm64v8-arm32-gcc + HYPERVISOR_ONLY: y + EXTRA_XEN_CONFIG: | + CONFIG_EXPERT=y + CONFIG_UNSUPPORTED=y + CONFIG_STATIC_MEMORY=y + +debian-unstable-gcc-arm32-debug-staticmem: + extends: .gcc-arm32-cross-build-debug + variables: + CONTAINER: debian:unstable-arm64v8-arm32-gcc + HYPERVISOR_ONLY: y + EXTRA_XEN_CONFIG: | + CONFIG_EXPERT=y + CONFIG_UNSUPPORTED=y + CONFIG_STATIC_MEMORY=y + # Arm builds debian-unstable-gcc-arm64: diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml index 84ab1fee50a4..c2bcc5d4d3e5 100644 --- a/automation/gitlab-ci/test.yaml +++ b/automation/gitlab-ci/test.yaml @@ -226,6 +226,22 @@ qemu-smoke-dom0less-arm32-gcc-debug: - *arm32-test-needs - debian-unstable-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-unstable-gcc-arm32-staticmem + +qemu-smoke-dom0less-arm32-gcc-debug-staticmem: + extends: .qemu-arm32 + script: + - ./automation/scripts/qemu-smoke-dom0less-arm32.sh static-mem 2>&1 | tee ${LOGFILE} + needs: + - *arm32-test-needs + - debian-unstable-gcc-arm32-debug-staticmem + 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 e3f2b28f3f89..bd89a3f8b45e 100755 --- a/automation/scripts/qemu-smoke-dom0less-arm32.sh +++ b/automation/scripts/qemu-smoke-dom0less-arm32.sh @@ -20,6 +20,19 @@ echo \"${passed}\" " fi +if [[ "${test_variant}" == "static-mem" ]]; then + # Memory range that is statically allocated to domU1 + domu_base="0x50000000" + domu_size="0x20000000" + passed="${test_variant} test passed" + domU_check=" +mem_range=$(printf \"%08x-%08x\" ${domu_base} $(( ${domu_base} + ${domu_size} - 1 ))) +if grep -q -x \"\${mem_range} : System RAM\" /proc/iomem; then + echo \"${passed}\" +fi +" +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 @@ -72,6 +85,10 @@ BOOT_CMD="bootm" UBOOT_SOURCE="boot.source" UBOOT_SCRIPT="boot.scr"' > config +if [[ "${test_variant}" == "static-mem" ]]; then + echo -e "\nDOMU_STATIC_MEM[0]=\"${domu_base} ${domu_size}\"" >> config +fi + rm -rf imagebuilder git clone https://gitlab.com/ViryaOS/imagebuilder bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
Add a new test job qemu-smoke-dom0less-arm32-gcc-staticmem in debug and non-debug variant that will execute qemu-smoke-dom0less-arm32.sh script to test static memory allocation feature. The test case itself is directly taken from dom0less arm64 testing. Populate build jobs to compile Xen with config options necessary to enable static memory feature. Populate test jobs passing "static-mem" as a test variant. The test configures domU with a static memory region (direct-mapped) and adds a check using /proc/iomem to determine the memory region marked as "System RAM". Signed-off-by: Michal Orzel <michal.orzel@amd.com> --- Changes in v2: - take into account new container for arm32 cross builds - drop Rb as a result of code changes --- automation/gitlab-ci/build.yaml | 20 +++++++++++++++++++ automation/gitlab-ci/test.yaml | 16 +++++++++++++++ .../scripts/qemu-smoke-dom0less-arm32.sh | 17 ++++++++++++++++ 3 files changed, 53 insertions(+)