On Thu, 16 May 2024, Marek Marczykowski-Górecki wrote:
> Based on the initial stubdomain test and existing PCI passthrough tests,
> add one that combines both.
> Schedule it on the AMD runner, as it has less tests right now.
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
With the caveat that if we do tftp boot this might have to change:
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
> automation/gitlab-ci/test.yaml | 8 ++++++++
> automation/scripts/qubes-x86-64.sh | 30 +++++++++++++++++++++++++-----
> 2 files changed, 33 insertions(+), 5 deletions(-)
>
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index e3910f4c1a9f..76cc430ae00f 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -231,6 +231,14 @@ zen3p-pci-hvm-x86-64-gcc-debug:
> - *x86-64-test-needs
> - alpine-3.19-gcc-debug
>
> +zen3p-pci-stubdom-x86-64-gcc-debug:
> + extends: .zen3p-x86-64
> + script:
> + - ./automation/scripts/qubes-x86-64.sh pci-stubdom 2>&1 | tee ${LOGFILE}
> + needs:
> + - *x86-64-test-needs
> + - alpine-3.19-gcc-debug
> +
> qemu-smoke-dom0-arm64-gcc:
> extends: .qemu-arm64
> script:
> diff --git a/automation/scripts/qubes-x86-64.sh b/automation/scripts/qubes-x86-64.sh
> index fc73403dbadf..816c16fbab3e 100755
> --- a/automation/scripts/qubes-x86-64.sh
> +++ b/automation/scripts/qubes-x86-64.sh
> @@ -98,8 +98,8 @@ ping -c 10 192.168.0.2 || exit 1
> echo \"${passed}\"
> "
>
> -### test: pci-pv, pci-hvm
> -elif [ "${test_variant}" = "pci-pv" ] || [ "${test_variant}" = "pci-hvm" ]; then
> +### test: pci-pv, pci-hvm, pci-stubdom
> +elif [ "${test_variant}" = "pci-pv" ] || [ "${test_variant}" = "pci-hvm" ] || [ "${test_variant}" = "pci-stubdom" ]; then
>
> if [ -z "$PCIDEV" ]; then
> echo "Please set 'PCIDEV' variable with BDF of test network adapter" >&2
> @@ -109,15 +109,35 @@ elif [ "${test_variant}" = "pci-pv" ] || [ "${test_variant}" = "pci-hvm" ]; then
>
> passed="pci test passed"
>
> - domU_config='
> + domain_type="${test_variant#pci-}"
> + if [ "$test_variant" = "pci-stubdom" ]; then
> + domain_type="hvm"
> + domU_config='
> +type = "hvm"
> +disk = [ "/srv/disk.img,format=raw,vdev=xvda" ]
> +device_model_version = "qemu-xen"
> +device_model_stubdomain_override = 1
> +on_reboot = "destroy"
> +# libxl configures vkb backend to be dom0 instead of the stubdomain, defer
> +# changing that until there is consensus what to do about VGA output (VNC)
> +vkb_device = 0
> +'
> + domU_disk_path=/srv/disk.img
> + else
> + domU_config='
> type = "'${test_variant#pci-}'"
> -name = "domU"
> kernel = "/boot/vmlinuz"
> ramdisk = "/boot/initrd-domU"
> extra = "root=/dev/ram0 console=hvc0 earlyprintk=xen"
> +disk = [ ]
> +'
> + fi
> +
> + # common part
> + domU_config="$domU_config"'
> +name = "domU"
> memory = 512
> vif = [ ]
> -disk = [ ]
> pci = [ "'$PCIDEV',seize=1" ]
> on_reboot = "destroy"
> '
> --
> git-series 0.9.1
>