From: "jiamei.xie" <jiamei.xie@arm.com>
To: xen-devel@lists.xenproject.org
Cc: wei.chen@arm.com, jiamei.xie@arm.com, sstabellini@kernel.org,
bertrand.marquis@arm.com, Doug Goldstein <cardoe@cardoe.com>
Subject: [PATCH v2 2/2] automation: arm64: Create test jobs for testing static shared memory on qemu
Date: Thu, 16 Mar 2023 09:12:24 +0000 [thread overview]
Message-ID: <20230316091224.338620-3-jiamei.xie@arm.com> (raw)
In-Reply-To: <20230316091224.338620-1-jiamei.xie@arm.com>
Create 2 new test jobs, called qemu-smoke-dom0less-arm64-gcc-static-shared-mem
and qemu-smoke-dom0less-arm64-gcc-debug-static-shared-mem.
Adjust qemu-smoke-dom0less-arm64.sh script to accomodate the static
shared memory test as a new test variant. The test variant is determined
based on the first argument passed to the script. For testing static
shared memory, the argument is 'static-shared-mem'.
The test configures two dom0less DOMUs with a static shared memory
region and adds a check in the init script.
The check consists in comparing the contents of the /proc/device-tree/reserved-memory
xen-shmem entry with the static shared memory range and id with which
DOMUs were configured. If the memory layout is correct, a message gets
printed by DOMU.
At the end of the qemu run, the script searches for the specific message
in the logs and fails if not found.
Signed-off-by: jiamei.xie <jiamei.xie@arm.com>
---
Changes from v1:
- Move the second domU creation to the general ImageBuilder script.
---
automation/gitlab-ci/build.yaml | 18 ++++++++++++
automation/gitlab-ci/test.yaml | 16 ++++++++++
.../scripts/qemu-smoke-dom0less-arm64.sh | 29 +++++++++++++++++++
3 files changed, 63 insertions(+)
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index 38bb22d860..820cc0af83 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -623,6 +623,24 @@ alpine-3.12-gcc-debug-arm64-staticmem:
CONFIG_UNSUPPORTED=y
CONFIG_STATIC_MEMORY=y
+alpine-3.12-gcc-arm64-static-shared-mem:
+ extends: .gcc-arm64-build
+ variables:
+ CONTAINER: alpine:3.12-arm64v8
+ EXTRA_XEN_CONFIG: |
+ CONFIG_UNSUPPORTED=y
+ CONFIG_STATIC_MEMORY=y
+ CONFIG_STATIC_SHM=y
+
+alpine-3.12-gcc-debug-arm64-static-shared-mem:
+ extends: .gcc-arm64-build-debug
+ variables:
+ CONTAINER: alpine:3.12-arm64v8
+ EXTRA_XEN_CONFIG: |
+ CONFIG_UNSUPPORTED=y
+ CONFIG_STATIC_MEMORY=y
+ CONFIG_STATIC_SHM=y
+
alpine-3.12-gcc-arm64-boot-cpupools:
extends: .gcc-arm64-build
variables:
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 37465305ff..d75662358f 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -174,6 +174,22 @@ qemu-smoke-dom0less-arm64-gcc-debug-staticheap:
- *arm64-test-needs
- alpine-3.12-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.12-gcc-arm64-static-shared-mem
+
+qemu-smoke-dom0less-arm64-gcc-debug-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.12-gcc-debug-arm64-static-shared-mem
+
qemu-smoke-dom0less-arm64-gcc-boot-cpupools:
extends: .qemu-arm64
script:
diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
index 2d69d976ea..75f575424a 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
@@ -32,6 +32,25 @@ if [[ "${test_variant}" == "static-heap" ]]; then
domU_check="echo \"${passed}\""
fi
+
+if [[ "${test_variant}" == "static-shared-mem" ]]; then
+ passed="${test_variant} test passed"
+ SHARED_MEM_HOST="50000000"
+ SHARED_MEM_GUEST="4000000"
+ SHARED_MEM_SIZE="10000000"
+ SHARED_MEM_ID="my-shared-mem-0"
+
+ domU_check="
+current_id=\$(cat /proc/device-tree/reserved-memory/xen-shmem@4000000/xen,id 2>/dev/null)
+expected_id=\"\$(echo ${SHARED_MEM_ID})\"
+current_reg=\$(hexdump -e '16/1 \"%02x\"' /proc/device-tree/reserved-memory/xen-shmem@4000000/reg 2>/dev/null)
+expected_reg=$(printf \"%016x%016x\" 0x${SHARED_MEM_GUEST} 0x${SHARED_MEM_SIZE})
+if [[ \"\${expected_reg}\" == \"\${current_reg}\" && \"\${current_id}\" == \"\${expected_id}\" ]]; then
+ echo \"${passed}\"
+fi
+ "
+fi
+
if [[ "${test_variant}" == "boot-cpupools" ]]; then
# Check if domU0 (id=1) is assigned to Pool-1 with null scheduler
passed="${test_variant} test passed"
@@ -124,6 +143,9 @@ NUM_DOMUS=1
DOMU_KERNEL[0]="Image"
DOMU_RAMDISK[0]="initrd"
DOMU_MEM[0]="256"
+DOMU_KERNEL[1]="Image"
+DOMU_RAMDISK[1]="initrd"
+DOMU_MEM[1]="256"
LOAD_CMD="tftpb"
UBOOT_SOURCE="boot.source"
@@ -133,6 +155,13 @@ if [[ "${test_variant}" == "static-mem" ]]; then
echo -e "\nDOMU_STATIC_MEM[0]=\"${domu_base} ${domu_size}\"" >> binaries/config
fi
+if [[ "${test_variant}" == "static-shared-mem" ]]; then
+echo "
+NUM_DOMUS=2
+DOMU_SHARED_MEM[0]=\"${SHARED_MEM_ID} 0x${SHARED_MEM_HOST} 0x${SHARED_MEM_GUEST} 0x${SHARED_MEM_SIZE}\"
+DOMU_SHARED_MEM[1]=\"${SHARED_MEM_ID} 0x${SHARED_MEM_HOST} 0x${SHARED_MEM_GUEST} 0x${SHARED_MEM_SIZE}\"" >> binaries/config
+fi
+
if [[ "${test_variant}" == "static-heap" ]]; then
# ImageBuilder uses the config file to create the uboot script. Devicetree
# will be set via the generated uboot script.
--
2.25.1
next prev parent reply other threads:[~2023-03-16 9:13 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-16 9:12 [PATCH v2 0/2] automation: introduce static heap and shared memory tests jiamei.xie
2023-03-16 9:12 ` [PATCH v2 1/2] automation: arm64: Create test jobs for testing static heap on qemu jiamei.xie
2023-03-17 1:16 ` Stefano Stabellini
2023-03-16 9:12 ` jiamei.xie [this message]
2023-03-17 1:19 ` [PATCH v2 2/2] automation: arm64: Create test jobs for testing static shared memory " Stefano Stabellini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230316091224.338620-3-jiamei.xie@arm.com \
--to=jiamei.xie@arm.com \
--cc=bertrand.marquis@arm.com \
--cc=cardoe@cardoe.com \
--cc=sstabellini@kernel.org \
--cc=wei.chen@arm.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).