On 2/5/20 3:55 PM, Liam Merwick wrote:
> Add acceptance tests for the microvm machine class, PVH, and the
> new qboot BIOS.
>
> In the case of the test to boot an uncompressed kernel there didn't
> seem to be any suitable uncompressed kernel on https://archives.fedoraproject.org/
> (there is a vmlinux in kernel-debuginfo but that RPM is 575M and
> caused timeouts when populating the Avocado cache when first run)
> so I chose an RPM with kernels for Kata that is 14M.
> (there was a discussion in [1] regarding testing PVH boot but it focussed
> more around building a vmlinux binary during testing).
>
> [ What prompted these patches was the discovery that a 'pc' guest booting an
> uncompressed kernel (PVH) with a PCI netdev hangs (before we even get guest
> console output) when bios-microvm.bin (qboot) is supplied via -bios
> (no issue when using 'q35' or 'microvm' machine classes).
>
> E.g. adding the following line to test_x86_64_pc_qboot_pvh() is enough to
> trigger a guest hang during startup:
> self.vm.add_args('-netdev', 'user,id=n1', '-device', 'virtio-net-pci,netdev=n1')
>
> I bisected that issue to 176d2cda0dee [2] in 4.1 but haven't worked out yet
> how/why the "die-id" changes impact the qboot/PVH combination
> (the boot succeeds with any subset of those boot variables).
>
> Is booting the 'pc' machine class with bios-microvm.bin something that QEMU
> officially supports or is qboot intended for microvm only? ]
>
> Each test added here adds about 1.5s to the overall runtime.
> I have run them through the Travis QEMU CI [3] and those acceptance tests pass.
>
> v1 -> v2
> Removed unnecessary qboot test for microvm in Patches 2 and 5 [Stefano]
> Added SeaBIOS test for microvm to Patch2
> Fix path concatenation in Patch4 to use os.path for filesystem paths [Wanier]
> Added Patch6 to fix extract_from_deb() to use os.path for filesystem paths
> Used dictionary to store kernel info in Patch5 [Philippe]
> Dropped patch with typo fix that has been queued separately
> Added Stefano's R-b to the patches which have not significantly changed.
>
> [1] https://patchew.org/QEMU/20191206140012.15517-1-wainersm@redhat.com/
> [2] 176d2cda0dee ("i386/cpu: Consolidate die-id validity in smp context")
> [3] https://travis-ci.org/merwick/qemu/builds/645487393
> [4] https://github.com/wainersm/qemu/commit/8f705e98df90b436b0f4946331d441309c437f7b
>
>
> Liam Merwick (6):
> tests/boot_linux_console: add microvm acceptance test
> tests/boot_linux_console: add BIOS acceptance test
> travis.yml: install rpm2cpio for acceptance tests
> tests/boot_linux_console: add extract_from_rpm method
> tests/boot_linux_console: add PVH acceptance tests
> tests/boot_linux_console: use os.path for filesystem paths
>
> .travis.yml | 1 +
> tests/acceptance/boot_linux_console.py | 114 ++++++++++++++++++++++++++++++---
> 2 files changed, 106 insertions(+), 9 deletions(-)
Patches 3, 4 and 6 applied to my python-next tree:
https://gitlab.com/philmd/qemu/commits/python-next