[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/3] automation: Add arm32 dom0less testing


  • To: Stefano Stabellini <sstabellini@xxxxxxxxxx>
  • From: Michal Orzel <michal.orzel@xxxxxxx>
  • Date: Tue, 14 Feb 2023 08:56:45 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dHRGeqFabrzqgtkCv/kwcmFJX8POG9wc4dVfDhSbL9g=; b=OOFNW714u2TRqv1cpkfX9H+Qr81ZG7g5ojhC3Cc9ZjQWaCZEGavt5jjUHUSb2YXFUC1PF7bfhBTMBBBbeYPfwmH5dXPnV4ODf3ooZwkR3RkIkNeJ2NmE2dUnG+915chRoeIVpZ6YHkHDqvY66AwxtkIqTD8PrlL/bJ+gtrpMC/HJhXfId9WWItVLVFDuXkQuXvGKyOYT7jHHQdIaGJSfIQnTzaVBZzI7pc5jJXF6vZCl2P0r6jf33EtI1tvCwylkgcJVmVP+UaCD078+bAYz8qHXChBLzBw3DDluyFlwS3tdidlLdMXP4vJ4SJb3FCAHmR0l3CP0VQHXRm1uH+nDvg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EFkM23ipgnXToOKTit0/H5zi6Glu8So/YQl4iGshLmeCKmGCu86y8rTxWkvgU5HPEnqautoooFbw4JUbqIf13JHsntWJ7rjcfqDgo7SimeTeI+Qe4PHNO/6umPg12kKo6NQ9Gd4Vt5WcCfQNYYB9VjTrBF91SqJGDrRXyPg71WDZrKZ9ZtX3BeWiNMUUZCo1ZEHhRe7mfNbbblwqSLFj1HEtJ+l7CjW2aWhNb7KoAKApD7DF90qpOFuJG+JrizEtlMYGaPBTTWlDGYiBOU6bD81fIBjLlSYXe2SYyucBgpqIRnIpTH4NDV6YhoTQz1TNL2Z810qN8XTPc3KtqPb+8g==
  • Cc: <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Doug Goldstein <cardoe@xxxxxxxxxx>
  • Delivery-date: Tue, 14 Feb 2023 07:57:02 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hi Stefano,

On 14/02/2023 01:37, Stefano Stabellini wrote:
> 
> 
> On Mon, 13 Feb 2023, Michal Orzel wrote:
>> At the moment, we only perform a single arm32 test in our CI, checking
>> whether dom0 boots successfully or not. This is mostly because we do not
>> have any arm32 runners and we only execute a hypervisor only build.
>>
>> In order not to leave the arm32 testing in such a poor state, add a
>> script qemu-smoke-dom0less-arm32.sh to start testing true dom0less
>> configuration, in which case we do not need a dom0 with a toolstack.
>>
>> The script is mostly based on the one used for dom0 arm32 testing as well
>> as the one used for dom0less arm64 testing. We obtain Debian Bullseye
>> kernel and Alpine Linux busybox-based rootfs. Depending on the test
>> variant, we prepare a test case contained within domU_check variable,
>> that will be executed as part of /init script.
>>
>> Signed-off-by: Michal Orzel <michal.orzel@xxxxxxx>
>> ---
>>  automation/gitlab-ci/test.yaml                | 16 ++++
>>  .../scripts/qemu-smoke-dom0less-arm32.sh      | 89 +++++++++++++++++++
>>  2 files changed, 105 insertions(+)
>>  create mode 100755 automation/scripts/qemu-smoke-dom0less-arm32.sh
>>
>> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
>> index ce543ef5c0ef..84ab1fee50a4 100644
>> --- a/automation/gitlab-ci/test.yaml
>> +++ b/automation/gitlab-ci/test.yaml
>> @@ -210,6 +210,22 @@ qemu-smoke-dom0-arm32-gcc-debug:
>>      - *arm32-test-needs
>>      - debian-unstable-gcc-arm32-debug
>>
>> +qemu-smoke-dom0less-arm32-gcc:
>> +  extends: .qemu-arm32
>> +  script:
>> +    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee 
>> ${LOGFILE}
>> +  needs:
>> +    - *arm32-test-needs
>> +    - debian-unstable-gcc-arm32
>> +
>> +qemu-smoke-dom0less-arm32-gcc-debug:
>> +  extends: .qemu-arm32
>> +  script:
>> +    - ./automation/scripts/qemu-smoke-dom0less-arm32.sh 2>&1 | tee 
>> ${LOGFILE}
>> +  needs:
>> +    - *arm32-test-needs
>> +    - debian-unstable-gcc-arm32-debug
>> +
>>  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
>> new file mode 100755
>> index 000000000000..c81529cbbfd0
>> --- /dev/null
>> +++ b/automation/scripts/qemu-smoke-dom0less-arm32.sh
>> @@ -0,0 +1,89 @@
>> +#!/bin/bash
>> +
>> +set -ex
>> +
>> +test_variant=$1
>> +
>> +cd binaries
>> +# Use the kernel from Debian
>> +curl --fail --silent --show-error --location --output vmlinuz 
>> https://deb.debian.org/debian/dists/bullseye/main/installer-armhf/current/images/netboot/vmlinuz
>> +# Use a tiny initrd based on busybox from Alpine Linux
>> +curl --fail --silent --show-error --location --output initrd.tar.gz 
>> https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/armhf/alpine-minirootfs-3.15.1-armhf.tar.gz
>> +
>> +if [ -z "${test_variant}" ]; then
>> +    passed="generic test passed"
>> +    domU_check="
>> +echo \"${passed}\"
>> +"
>> +fi
>> +
>> +# domU rootfs
>> +mkdir rootfs
>> +cd rootfs
>> +tar xvzf ../initrd.tar.gz
>> +echo "#!/bin/sh
>> +
>> +mount -t proc proc /proc
>> +mount -t sysfs sysfs /sys
>> +mount -t devtmpfs devtmpfs /dev
>> +${domU_check}
>> +/bin/sh" > init
>> +chmod +x init
>> +find . | cpio -H newc -o | gzip > ../initrd.gz
>> +cd ..
>> +
>> +# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
>> +curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
>> +./qemu-system-arm \
>> +    -machine virt \
>> +    -machine virtualization=true \
>> +    -smp 4 \
>> +    -m 1024 \
>> +    -serial stdio \
>> +    -monitor none \
>> +    -display none \
>> +    -machine dumpdtb=virt.dtb
>> +
>> +# ImageBuilder
>> +echo 'MEMORY_START="0x40000000"
>> +MEMORY_END="0x80000000"
>> +
>> +DEVICE_TREE="virt.dtb"
>> +XEN="xen"
>> +XEN_CMD="console=dtuart bootscrub=0"
>> +
>> +DOMU_KERNEL[0]="vmlinuz"
>> +DOMU_RAMDISK[0]="initrd.gz"
>> +DOMU_MEM[0]="512"
>> +NUM_DOMUS=1
> 
> Since we are at it I would prefer to create both dom0 and a domU to make
> the test more interesting. The following works on gitlab-ci on top of
> this patch. Would you be up for adding it to this patch?
This is exactly what I had in my initial approach. However, because this would 
not differ
much from what we have in dom0 arm32 testing, I decided to go for true dom0less 
configuration.
I'm ok to always boot dom0less domU with dom0. In this case I might add an 
additional test to
run a true dom0less as well.

~Michal



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.