[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 2/2] automation: arm64: Create a test job for testing static shared memory on qemu
On Thu, 2 Mar 2023, jiamei.xie wrote: > Create a new test job, called qemu-smoke-dom0less-arm64-gcc-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@xxxxxxx> > --- > 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 5a9b88477a..f4d36babda 100644 > --- a/automation/gitlab-ci/test.yaml > +++ b/automation/gitlab-ci/test.yaml > @@ -149,6 +149,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 4e73857199..fe3a282726 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 all good so far > if [[ "${test_variant}" == "boot-cpupools" ]]; then > # Check if domU0 (id=1) is assigned to Pool-1 with null scheduler > passed="${test_variant} test passed" > @@ -133,6 +152,16 @@ 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]=\""0x${SHARED_MEM_HOST} 0x${SHARED_MEM_GUEST} > 0x${SHARED_MEM_SIZE}"\" > +DOMU_SHARED_MEM_ID[0]="${SHARED_MEM_ID}" > +DOMU_KERNEL[1]=\"Image\" > +DOMU_RAMDISK[1]=\"initrd\" Please move the second domU creation above to the general ImageBuilder script. It is fine to start 2 dom0less guests for all tests (assuming it doesn't break anything). So here under the if [[ "${test_variant}" == "static-shared-mem" ]] we can keep the setting of DOMU_SHARED_MEM and DOMU_SHARED_MEM_ID. (Or only DOMU_SHARED_MEM if you follow the suggestion on the other patch.) > +DOMU_SHARED_MEM[1]=\"0x${SHARED_MEM_HOST} 0x${SHARED_MEM_GUEST} > 0x${SHARED_MEM_SIZE}\" > +DOMU_SHARED_MEM_ID[1]=\"${SHARED_MEM_ID}\"" >> 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 >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |