Mailing List Archive

[xen master] automation: Add a static memory allocation test on arm32
commit a6ce51ac3de8267ed4e2e7f2e1cf93d51c6d797a
Author: Michal Orzel <michal.orzel@amd.com>
AuthorDate: Tue Feb 14 16:38:40 2023 +0100
Commit: Stefano Stabellini <stefano.stabellini@amd.com>
CommitDate: Wed Feb 15 13:46:11 2023 -0800

automation: Add a static memory allocation test on arm32

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>
---
automation/gitlab-ci/build.yaml | 20 ++++++++++++++++++++
automation/gitlab-ci/test.yaml | 16 ++++++++++++++++
automation/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 f8e156e0a9..079e9b73f6 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 84ab1fee50..c2bcc5d4d3 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 e3f2b28f3f..bd89a3f8b4 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
--
generated by git-patchbot for /home/xen/git/xen.git#master