[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 2/2] automation: arm64: Create test jobs for testing static shared memory on qemu
On Thu, 16 Mar 2023, jiamei.xie wrote: > 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@xxxxxxx> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > --- > 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 >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |