Message ID | 20220805211741.1869068-3-burzalodowa@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | automation: Test a pv network interface under dom0less enhanced | expand |
On Sat, 6 Aug 2022, Xenia Ragiadakou wrote: > This patch modified the test in the following way > - Dom0 is booted with an alpine linux rootfs with the xen tools. > - Once Dom0 is booted, it starts xenstored, calls init-dom0less to setup > the xenstore interface for the dom0less Dom1, setups the bridged network > and attaches a pv network interface to Dom1. > - In the meantime, Dom1 in its init script tries to assign an ip to eth0 > and ping Dom0, > - If Dom1 manages to ping Dom0, it prints 'passed'. > > Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com> > --- > automation/gitlab-ci/test.yaml | 6 ++-- > automation/scripts/qemu-smoke-arm64.sh | 43 +++++++++++++++++++++++--- > 2 files changed, 43 insertions(+), 6 deletions(-) > > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml > index aa633fb655..2eb6c3866e 100644 > --- a/automation/gitlab-ci/test.yaml > +++ b/automation/gitlab-ci/test.yaml > @@ -69,7 +69,8 @@ qemu-smoke-arm64-gcc: > script: > - ./automation/scripts/qemu-smoke-arm64.sh 2>&1 | tee qemu-smoke-arm64.log > needs: > - - debian-unstable-gcc-arm64 > + - alpine-3.12-gcc-arm64 > + - alpine-3.12-arm64-rootfs-export > - kernel-5.19-arm64-export > - qemu-system-aarch64-6.0.0-arm64-export > artifacts: > @@ -87,7 +88,8 @@ qemu-smoke-arm64-gcc-staticmem: > script: > - ./automation/scripts/qemu-smoke-arm64.sh static-mem 2>&1 | tee qemu-smoke-arm64.log > needs: > - - debian-unstable-gcc-arm64 > + - alpine-3.12-gcc-arm64 > + - alpine-3.12-arm64-rootfs-export > - kernel-5.19-arm64-export > - qemu-system-aarch64-6.0.0-arm64-export > artifacts: > diff --git a/automation/scripts/qemu-smoke-arm64.sh b/automation/scripts/qemu-smoke-arm64.sh > index b48a20988f..0d19ad52cc 100755 > --- a/automation/scripts/qemu-smoke-arm64.sh > +++ b/automation/scripts/qemu-smoke-arm64.sh > @@ -4,8 +4,13 @@ set -ex > > test_variant=$1 > > -passed="BusyBox" > -check="" > +passed="passed" > +check=" > +until ifconfig eth0 192.168.0.2 && ping -c 10 192.168.0.1; do > + sleep 30 > +done > +echo \"${passed}\" > +" > > if [[ "${test_variant}" == "static-mem" ]]; then > # Memory range that is statically allocated to DOM1 > @@ -68,6 +73,36 @@ cd initrd > find . | cpio --create --format='newc' | gzip > ../binaries/initrd > cd .. > > +# DOM0 rootfs > +mkdir -p rootfs > +cd rootfs > +tar xzf ../binaries/initrd.tar.gz > +mkdir proc > +mkdir run > +mkdir srv > +mkdir sys > +rm var/run > +cp -ar ../binaries/dist/install/* . > + > +echo "#!/bin/bash > + > +export LD_LIBRARY_PATH=/usr/local/lib > +bash /etc/init.d/xencommons start > + > +/usr/local/lib/xen/bin/init-dom0less > + > +brctl addbr xenbr0 > +brctl addif xenbr0 eth0 > +ifconfig eth0 up > +ifconfig xenbr0 up > +ifconfig xenbr0 192.168.0.1 > + > +xl network-attach 1 type=vif > +" > etc/local.d/xen.start > +chmod +x etc/local.d/xen.start > +echo "rc_verbose=yes" >> etc/rc.conf > +find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz > +cd .. > > # ImageBuilder > echo 'MEMORY_START="0x40000000" > @@ -76,7 +111,7 @@ MEMORY_END="0x80000000" > DEVICE_TREE="virt-gicv2.dtb" > XEN="xen" > DOM0_KERNEL="Image" > -DOM0_RAMDISK="initrd" > +DOM0_RAMDISK="dom0-rootfs.cpio.gz" > XEN_CMD="console=dtuart dom0_mem=512M" > > NUM_DOMUS=1 > @@ -113,5 +148,5 @@ timeout -k 1 240 \ > -bios /usr/lib/u-boot/qemu_arm64/u-boot.bin |& tee smoke.serial > > set -e > -(grep -q "^BusyBox" smoke.serial && grep -q "DOM1: ${passed}" smoke.serial) || exit 1 > +(grep -q "^Welcome to Alpine Linux 3.12" smoke.serial && grep -q "DOM1: ${passed}" smoke.serial) || exit 1 > exit 0 This patch looks great! One minor comment: Should we great only for "^Welcome to Alpine Linux" without the version (3.12) to make it easier to upgrade in the future? If you are OK with it, I can remove "3.12" on commit.
On Fri, 5 Aug 2022, Stefano Stabellini wrote: > On Sat, 6 Aug 2022, Xenia Ragiadakou wrote: > > This patch modified the test in the following way > > - Dom0 is booted with an alpine linux rootfs with the xen tools. > > - Once Dom0 is booted, it starts xenstored, calls init-dom0less to setup > > the xenstore interface for the dom0less Dom1, setups the bridged network > > and attaches a pv network interface to Dom1. > > - In the meantime, Dom1 in its init script tries to assign an ip to eth0 > > and ping Dom0, > > - If Dom1 manages to ping Dom0, it prints 'passed'. > > > > Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com> [...] > > @@ -113,5 +148,5 @@ timeout -k 1 240 \ > > -bios /usr/lib/u-boot/qemu_arm64/u-boot.bin |& tee smoke.serial > > > > set -e > > -(grep -q "^BusyBox" smoke.serial && grep -q "DOM1: ${passed}" smoke.serial) || exit 1 > > +(grep -q "^Welcome to Alpine Linux 3.12" smoke.serial && grep -q "DOM1: ${passed}" smoke.serial) || exit 1 > > exit 0 > > This patch looks great! One minor comment: Should we great only for > "^Welcome to Alpine Linux" without the version (3.12) to make it easier > to upgrade in the future? > > If you are OK with it, I can remove "3.12" on commit. We also need to remove DOMU_ENHANCED[0] from the ImageBuilder config otherwise this is not going to work. diff --git a/automation/scripts/qemu-smoke-arm64.sh b/automation/scripts/qemu-smoke-arm64.sh index a79401fd81..0d19ad52cc 100755 --- a/automation/scripts/qemu-smoke-arm64.sh +++ b/automation/scripts/qemu-smoke-arm64.sh @@ -118,7 +118,6 @@ NUM_DOMUS=1 DOMU_KERNEL[0]="Image" DOMU_RAMDISK[0]="initrd" DOMU_MEM[0]="256" -DOMU_ENHANCED[0]=0 LOAD_CMD="tftpb" UBOOT_SOURCE="boot.source"
Hi Stefano, On 8/6/22 04:18, Stefano Stabellini wrote: > On Fri, 5 Aug 2022, Stefano Stabellini wrote: >> On Sat, 6 Aug 2022, Xenia Ragiadakou wrote: >>> This patch modified the test in the following way >>> - Dom0 is booted with an alpine linux rootfs with the xen tools. >>> - Once Dom0 is booted, it starts xenstored, calls init-dom0less to setup >>> the xenstore interface for the dom0less Dom1, setups the bridged network >>> and attaches a pv network interface to Dom1. >>> - In the meantime, Dom1 in its init script tries to assign an ip to eth0 >>> and ping Dom0, >>> - If Dom1 manages to ping Dom0, it prints 'passed'. >>> >>> Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com> > > [...] > >>> @@ -113,5 +148,5 @@ timeout -k 1 240 \ >>> -bios /usr/lib/u-boot/qemu_arm64/u-boot.bin |& tee smoke.serial >>> >>> set -e >>> -(grep -q "^BusyBox" smoke.serial && grep -q "DOM1: ${passed}" smoke.serial) || exit 1 >>> +(grep -q "^Welcome to Alpine Linux 3.12" smoke.serial && grep -q "DOM1: ${passed}" smoke.serial) || exit 1 >>> exit 0 >> >> This patch looks great! One minor comment: Should we great only for >> "^Welcome to Alpine Linux" without the version (3.12) to make it easier >> to upgrade in the future? >> >> If you are OK with it, I can remove "3.12" on commit. > > We also need to remove DOMU_ENHANCED[0] from the ImageBuilder config > otherwise this is not going to work. > > diff --git a/automation/scripts/qemu-smoke-arm64.sh b/automation/scripts/qemu-smoke-arm64.sh > index a79401fd81..0d19ad52cc 100755 > --- a/automation/scripts/qemu-smoke-arm64.sh > +++ b/automation/scripts/qemu-smoke-arm64.sh > @@ -118,7 +118,6 @@ NUM_DOMUS=1 > DOMU_KERNEL[0]="Image" > DOMU_RAMDISK[0]="initrd" > DOMU_MEM[0]="256" > -DOMU_ENHANCED[0]=0 > > LOAD_CMD="tftpb" > UBOOT_SOURCE="boot.source" This change was not there when I was testing, that's why. I will wait a bit in case there are more comments and I will send a v2 with this fixed and 3.12 removed.
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml index aa633fb655..2eb6c3866e 100644 --- a/automation/gitlab-ci/test.yaml +++ b/automation/gitlab-ci/test.yaml @@ -69,7 +69,8 @@ qemu-smoke-arm64-gcc: script: - ./automation/scripts/qemu-smoke-arm64.sh 2>&1 | tee qemu-smoke-arm64.log needs: - - debian-unstable-gcc-arm64 + - alpine-3.12-gcc-arm64 + - alpine-3.12-arm64-rootfs-export - kernel-5.19-arm64-export - qemu-system-aarch64-6.0.0-arm64-export artifacts: @@ -87,7 +88,8 @@ qemu-smoke-arm64-gcc-staticmem: script: - ./automation/scripts/qemu-smoke-arm64.sh static-mem 2>&1 | tee qemu-smoke-arm64.log needs: - - debian-unstable-gcc-arm64 + - alpine-3.12-gcc-arm64 + - alpine-3.12-arm64-rootfs-export - kernel-5.19-arm64-export - qemu-system-aarch64-6.0.0-arm64-export artifacts: diff --git a/automation/scripts/qemu-smoke-arm64.sh b/automation/scripts/qemu-smoke-arm64.sh index b48a20988f..0d19ad52cc 100755 --- a/automation/scripts/qemu-smoke-arm64.sh +++ b/automation/scripts/qemu-smoke-arm64.sh @@ -4,8 +4,13 @@ set -ex test_variant=$1 -passed="BusyBox" -check="" +passed="passed" +check=" +until ifconfig eth0 192.168.0.2 && ping -c 10 192.168.0.1; do + sleep 30 +done +echo \"${passed}\" +" if [[ "${test_variant}" == "static-mem" ]]; then # Memory range that is statically allocated to DOM1 @@ -68,6 +73,36 @@ cd initrd find . | cpio --create --format='newc' | gzip > ../binaries/initrd cd .. +# DOM0 rootfs +mkdir -p rootfs +cd rootfs +tar xzf ../binaries/initrd.tar.gz +mkdir proc +mkdir run +mkdir srv +mkdir sys +rm var/run +cp -ar ../binaries/dist/install/* . + +echo "#!/bin/bash + +export LD_LIBRARY_PATH=/usr/local/lib +bash /etc/init.d/xencommons start + +/usr/local/lib/xen/bin/init-dom0less + +brctl addbr xenbr0 +brctl addif xenbr0 eth0 +ifconfig eth0 up +ifconfig xenbr0 up +ifconfig xenbr0 192.168.0.1 + +xl network-attach 1 type=vif +" > etc/local.d/xen.start +chmod +x etc/local.d/xen.start +echo "rc_verbose=yes" >> etc/rc.conf +find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz +cd .. # ImageBuilder echo 'MEMORY_START="0x40000000" @@ -76,7 +111,7 @@ MEMORY_END="0x80000000" DEVICE_TREE="virt-gicv2.dtb" XEN="xen" DOM0_KERNEL="Image" -DOM0_RAMDISK="initrd" +DOM0_RAMDISK="dom0-rootfs.cpio.gz" XEN_CMD="console=dtuart dom0_mem=512M" NUM_DOMUS=1 @@ -113,5 +148,5 @@ timeout -k 1 240 \ -bios /usr/lib/u-boot/qemu_arm64/u-boot.bin |& tee smoke.serial set -e -(grep -q "^BusyBox" smoke.serial && grep -q "DOM1: ${passed}" smoke.serial) || exit 1 +(grep -q "^Welcome to Alpine Linux 3.12" smoke.serial && grep -q "DOM1: ${passed}" smoke.serial) || exit 1 exit 0
This patch modified the test in the following way - Dom0 is booted with an alpine linux rootfs with the xen tools. - Once Dom0 is booted, it starts xenstored, calls init-dom0less to setup the xenstore interface for the dom0less Dom1, setups the bridged network and attaches a pv network interface to Dom1. - In the meantime, Dom1 in its init script tries to assign an ip to eth0 and ping Dom0, - If Dom1 manages to ping Dom0, it prints 'passed'. Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com> --- automation/gitlab-ci/test.yaml | 6 ++-- automation/scripts/qemu-smoke-arm64.sh | 43 +++++++++++++++++++++++--- 2 files changed, 43 insertions(+), 6 deletions(-)