From 0a8b4fd59fdec7edc5c569d5a30c96a5d456e584 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Mon, 13 Jan 2025 09:25:15 +0100 Subject: [PATCH 1/9] tests/functional: Convert the kvm_xen_guest avocado test Use the serial console to execute the commands in the guest instead of using ssh since we don't have ssh support in the functional framework yet. Acked-by: David Woodhouse Message-ID: <20250113082516.57894-1-thuth@redhat.com> Signed-off-by: Thomas Huth --- MAINTAINERS | 2 +- tests/functional/meson.build | 2 + .../test_x86_64_kvm_xen.py} | 89 +++++++++++-------- 3 files changed, 55 insertions(+), 38 deletions(-) rename tests/{avocado/kvm_xen_guest.py => functional/test_x86_64_kvm_xen.py} (61%) mode change 100644 => 100755 diff --git a/MAINTAINERS b/MAINTAINERS index 846b81e3ec..94834b7876 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -489,7 +489,7 @@ S: Supported F: include/system/kvm_xen.h F: target/i386/kvm/xen* F: hw/i386/kvm/xen* -F: tests/avocado/kvm_xen_guest.py +F: tests/functional/test_x86_64_kvm_xen.py Guest CPU Cores (other accelerators) ------------------------------------ diff --git a/tests/functional/meson.build b/tests/functional/meson.build index cf80924ddc..b7719ab85f 100644 --- a/tests/functional/meson.build +++ b/tests/functional/meson.build @@ -44,6 +44,7 @@ test_timeouts = { 'riscv64_tuxrun' : 120, 's390x_ccw_virtio' : 420, 'sh4_tuxrun' : 240, + 'x86_64_kvm_xen' : 180, } tests_generic_system = [ @@ -244,6 +245,7 @@ tests_x86_64_system_thorough = [ 'netdev_ethtool', 'virtio_gpu', 'x86_64_hotplug_cpu', + 'x86_64_kvm_xen', 'x86_64_tuxrun', ] diff --git a/tests/avocado/kvm_xen_guest.py b/tests/functional/test_x86_64_kvm_xen.py old mode 100644 new mode 100755 similarity index 61% rename from tests/avocado/kvm_xen_guest.py rename to tests/functional/test_x86_64_kvm_xen.py index f8cb458d5d..0298c96c2e --- a/tests/avocado/kvm_xen_guest.py +++ b/tests/functional/test_x86_64_kvm_xen.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 +# # KVM Xen guest functional tests # # Copyright © 2021 Red Hat, Inc. @@ -13,19 +15,12 @@ import os from qemu.machine import machine -from avocado_qemu import LinuxSSHMixIn -from avocado_qemu import QemuSystemTest -from avocado_qemu import wait_for_console_pattern +from qemu_test import QemuSystemTest, Asset, exec_command_and_wait_for_pattern +from qemu_test import wait_for_console_pattern -class KVMXenGuest(QemuSystemTest, LinuxSSHMixIn): - """ - :avocado: tags=arch:x86_64 - :avocado: tags=machine:q35 - :avocado: tags=accel:kvm - :avocado: tags=kvm_xen_guest - """ +class KVMXenGuest(QemuSystemTest): - KERNEL_DEFAULT = 'printk.time=0 root=/dev/xvda console=ttyS0' + KERNEL_DEFAULT = 'printk.time=0 root=/dev/xvda console=ttyS0 quiet' kernel_path = None kernel_params = None @@ -33,14 +28,15 @@ class KVMXenGuest(QemuSystemTest, LinuxSSHMixIn): # Fetch assets from the kvm-xen-guest subdir of my shared test # images directory on fileserver.linaro.org where you can find # build instructions for how they where assembled. - def get_asset(self, name, sha1): - base_url = ('https://fileserver.linaro.org/s/' - 'kE4nCFLdQcoBF9t/download?' - 'path=%2Fkvm-xen-guest&files=' ) - url = base_url + name - # use explicit name rather than failing to neatly parse the - # URL into a unique one - return self.fetch_asset(name=name, locations=(url), asset_hash=sha1) + ASSET_KERNEL = Asset( + ('https://fileserver.linaro.org/s/kE4nCFLdQcoBF9t/download?' + 'path=%2Fkvm-xen-guest&files=bzImage'), + 'ec0ad7bb8c33c5982baee0a75505fe7dbf29d3ff5d44258204d6307c6fe0132a') + + ASSET_ROOTFS = Asset( + ('https://fileserver.linaro.org/s/kE4nCFLdQcoBF9t/download?' + 'path=%2Fkvm-xen-guest&files=rootfs.ext4'), + 'b11045d649006c649c184e93339aaa41a8fe20a1a86620af70323252eb29e40b') def common_vm_setup(self): # We also catch lack of KVM_XEN support if we fail to launch @@ -51,10 +47,8 @@ class KVMXenGuest(QemuSystemTest, LinuxSSHMixIn): self.vm.add_args("-accel", "kvm,xen-version=0x4000a,kernel-irqchip=split") self.vm.add_args("-smp", "2") - self.kernel_path = self.get_asset("bzImage", - "367962983d0d32109998a70b45dcee4672d0b045") - self.rootfs = self.get_asset("rootfs.ext4", - "f1478401ea4b3fa2ea196396be44315bab2bb5e4") + self.kernel_path = self.ASSET_KERNEL.fetch() + self.rootfs = self.ASSET_ROOTFS.fetch() def run_and_check(self): self.vm.add_args('-kernel', self.kernel_path, @@ -68,10 +62,10 @@ class KVMXenGuest(QemuSystemTest, LinuxSSHMixIn): self.vm.launch() except machine.VMLaunchFailure as e: if "Xen HVM guest support not present" in e.output: - self.cancel("KVM Xen support is not present " - "(need v5.12+ kernel with CONFIG_KVM_XEN)") + self.skipTest("KVM Xen support is not present " + "(need v5.12+ kernel with CONFIG_KVM_XEN)") elif "Property 'kvm-accel.xen-version' not found" in e.output: - self.cancel("QEMU not built with CONFIG_XEN_EMU support") + self.skipTest("QEMU not built with CONFIG_XEN_EMU support") else: raise e @@ -79,10 +73,11 @@ class KVMXenGuest(QemuSystemTest, LinuxSSHMixIn): console_pattern = 'Starting dropbear sshd: OK' wait_for_console_pattern(self, console_pattern, 'Oops') self.log.info('sshd ready') - self.ssh_connect('root', '', False) - self.ssh_command('cat /proc/cmdline') - self.ssh_command('dmesg | grep -e "Grant table initialized"') + exec_command_and_wait_for_pattern(self, 'cat /proc/cmdline', 'xen') + exec_command_and_wait_for_pattern(self, 'dmesg | grep "Grant table"', + 'Grant table initialized') + wait_for_console_pattern(self, '#', 'Oops') def test_kvm_xen_guest(self): """ @@ -94,7 +89,9 @@ class KVMXenGuest(QemuSystemTest, LinuxSSHMixIn): self.kernel_params = (self.KERNEL_DEFAULT + ' xen_emul_unplug=ide-disks') self.run_and_check() - self.ssh_command('grep xen-pirq.*msi /proc/interrupts') + exec_command_and_wait_for_pattern(self, + 'grep xen-pirq.*msi /proc/interrupts', + 'virtio0-output') def test_kvm_xen_guest_nomsi(self): """ @@ -106,7 +103,9 @@ class KVMXenGuest(QemuSystemTest, LinuxSSHMixIn): self.kernel_params = (self.KERNEL_DEFAULT + ' xen_emul_unplug=ide-disks pci=nomsi') self.run_and_check() - self.ssh_command('grep xen-pirq.* /proc/interrupts') + exec_command_and_wait_for_pattern(self, + 'grep xen-pirq.* /proc/interrupts', + 'virtio0') def test_kvm_xen_guest_noapic_nomsi(self): """ @@ -118,7 +117,9 @@ class KVMXenGuest(QemuSystemTest, LinuxSSHMixIn): self.kernel_params = (self.KERNEL_DEFAULT + ' xen_emul_unplug=ide-disks noapic pci=nomsi') self.run_and_check() - self.ssh_command('grep xen-pirq /proc/interrupts') + exec_command_and_wait_for_pattern(self, + 'grep xen-pirq /proc/interrupts', + 'virtio0') def test_kvm_xen_guest_vapic(self): """ @@ -130,8 +131,13 @@ class KVMXenGuest(QemuSystemTest, LinuxSSHMixIn): self.kernel_params = (self.KERNEL_DEFAULT + ' xen_emul_unplug=ide-disks') self.run_and_check() - self.ssh_command('grep xen-pirq /proc/interrupts') - self.ssh_command('grep PCI-MSI /proc/interrupts') + exec_command_and_wait_for_pattern(self, + 'grep xen-pirq /proc/interrupts', + 'acpi') + wait_for_console_pattern(self, '#') + exec_command_and_wait_for_pattern(self, + 'grep PCI-MSI /proc/interrupts', + 'virtio0-output') def test_kvm_xen_guest_novector(self): """ @@ -143,7 +149,9 @@ class KVMXenGuest(QemuSystemTest, LinuxSSHMixIn): ' xen_emul_unplug=ide-disks' + ' xen_no_vector_callback') self.run_and_check() - self.ssh_command('grep xen-platform-pci /proc/interrupts') + exec_command_and_wait_for_pattern(self, + 'grep xen-platform-pci /proc/interrupts', + 'fasteoi') def test_kvm_xen_guest_novector_nomsi(self): """ @@ -156,7 +164,9 @@ class KVMXenGuest(QemuSystemTest, LinuxSSHMixIn): ' xen_emul_unplug=ide-disks pci=nomsi' + ' xen_no_vector_callback') self.run_and_check() - self.ssh_command('grep xen-platform-pci /proc/interrupts') + exec_command_and_wait_for_pattern(self, + 'grep xen-platform-pci /proc/interrupts', + 'IO-APIC') def test_kvm_xen_guest_novector_noapic(self): """ @@ -168,4 +178,9 @@ class KVMXenGuest(QemuSystemTest, LinuxSSHMixIn): ' xen_emul_unplug=ide-disks' + ' xen_no_vector_callback noapic') self.run_and_check() - self.ssh_command('grep xen-platform-pci /proc/interrupts') + exec_command_and_wait_for_pattern(self, + 'grep xen-platform-pci /proc/interrupts', + 'XT-PIC') + +if __name__ == '__main__': + QemuSystemTest.main() From b94893ab0f68c08c9d4203c119c823da27b5ff04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Mon, 6 Jan 2025 06:50:24 +0100 Subject: [PATCH 2/9] MAINTAINERS: Remove myself as Avocado Framework reviewer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit While I was very enthusiastic when Avocado was presented to the QEMU community and pushed forward to have it integrated, time passed and I lost interest. Be honest, remove my R: tag to not give fake expectation I'd review patches related to Avocado anymore. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Thomas Huth Message-ID: <20250106055024.70139-1-philmd@linaro.org> Signed-off-by: Thomas Huth --- MAINTAINERS | 1 - 1 file changed, 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 94834b7876..7be3d8f431 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4207,7 +4207,6 @@ F: tests/tcg/Makefile.target Integration Testing with the Avocado framework W: https://trello.com/b/6Qi1pxVn/avocado-qemu R: Cleber Rosa -R: Philippe Mathieu-Daudé S: Odd Fixes F: tests/avocado/ From 145f12ea885c8fcfbe2d0ac5230630f071b5a9fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Date: Thu, 9 Jan 2025 09:37:46 +0000 Subject: [PATCH 3/9] crypto: fix bogus error benchmarking pbkdf on fast machines MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We're seeing periodic reports of errors like: $ qemu-img create -f luks --object secret,data=123456,id=sec0 \ -o key-secret=sec0 luks-info.img 1M Formatting 'luks-info.img', fmt=luks size=1048576 key-secret=sec0 qemu-img: luks-info.img: Unable to get accurate CPU usage This error message comes from a recent attempt to workaround a kernel bug with measuring rusage in long running processes: commit c72cab5ad9f849bbcfcf4be7952b8b8946cc626e Author: Tiago Pasqualini Date: Wed Sep 4 20:52:30 2024 -0300 crypto: run qcrypto_pbkdf2_count_iters in a new thread Unfortunately this has a subtle bug on machines which are very fast. On the first time around the loop, the 'iterations' value is quite small (1 << 15), and so will run quite fast. Testing has shown that some machines can complete this benchmarking task in as little as 7 milliseconds. Unfortunately the 'getrusage' data is not updated at the time of the 'getrusage' call, it is done asynchronously by the scheduler. The 7 millisecond completion time for the benchmark is short enough that 'getrusage' sometimes reports 0 accumulated execution time. As a result the 'delay_ms == 0' sanity check in the above commit is triggering non-deterministically on such machines. The benchmarking loop intended to run multiple times, increasing the 'iterations' value until the benchmark ran for > 500 ms, but the sanity check doesn't allow this to happen. To fix it, we keep a loop counter and only run the sanity check after we've been around the loop more than 5 times. At that point the 'iterations' value is high enough that even with infrequent updates of 'getrusage' accounting data on fast machines, we should see a non-zero value. Fixes: https://lore.kernel.org/qemu-devel/ffe542bb-310c-4616-b0ca-13182f849fd1@redhat.com/ Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2336437 Reported-by: Thomas Huth Reported-by: Richard W.M. Jones Tested-by: Thomas Huth Signed-off-by: Daniel P. Berrangé Message-ID: <20250109093746.1216300-1-berrange@redhat.com> Signed-off-by: Thomas Huth --- crypto/pbkdf.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/crypto/pbkdf.c b/crypto/pbkdf.c index 0dd7c3aeaa..2989fc0a40 100644 --- a/crypto/pbkdf.c +++ b/crypto/pbkdf.c @@ -107,7 +107,7 @@ static void *threaded_qcrypto_pbkdf2_count_iters(void *data) size_t nsalt = iters_data->nsalt; size_t nout = iters_data->nout; Error **errp = iters_data->errp; - + size_t scaled = 0; uint64_t ret = -1; g_autofree uint8_t *out = g_new(uint8_t, nout); uint64_t iterations = (1 << 15); @@ -131,7 +131,17 @@ static void *threaded_qcrypto_pbkdf2_count_iters(void *data) delta_ms = end_ms - start_ms; - if (delta_ms == 0) { /* sanity check */ + /* + * For very small 'iterations' values, CPU (or crypto + * accelerator) might be fast enough that the scheduler + * hasn't incremented getrusage() data, or incremented + * it by a very small amount, resulting in delta_ms == 0. + * Once we've scaled 'iterations' x10, 5 times, we really + * should be seeing delta_ms != 0, so sanity check at + * that point. + */ + if (scaled > 5 && + delta_ms == 0) { /* sanity check */ error_setg(errp, "Unable to get accurate CPU usage"); goto cleanup; } else if (delta_ms > 500) { @@ -141,6 +151,7 @@ static void *threaded_qcrypto_pbkdf2_count_iters(void *data) } else { iterations = (iterations * 1000 / delta_ms); } + scaled++; } iterations = iterations * 1000 / delta_ms; From 807830e809bc684dc3344e78dd32f0cb6e5c6c37 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Mon, 20 Jan 2025 08:07:05 +0100 Subject: [PATCH 4/9] hw/s390x: Fix crash that occurs when inspecting older versioned machines types qemu-system-s390x currently crashes when trying to inspect older machines types, for example: $ echo '{ "execute": "qmp_capabilities" } { "execute": "qom-list-properties","arguments": { "typename": "s390-ccw-virtio-3.0-machine"}}' \ | ./qemu-system-s390x -qmp stdio -no-shutdown {"QMP": {"version": {"qemu": {"micro": 50, "minor": 2, "major": 9}, "package": "v9.2.0-1071-g81e97df3e7"}, "capabilities": ["oob"]}} {"return": {}} ** Bail out! ERROR:../target/s390x/cpu_models.c:832:s390_set_qemu_cpu_model: assertion failed: (QTAILQ_EMPTY_RCU(&cpus_queue)) Aborted (core dumped) The problem is that the versioned s390-ccw-virtio machine types use instance_init() to set global state that should be initialized before the CPUs get instantiated. But instance_init() is not called only for the machine that is finally used, it is also called for temporary instances of objects that are e.g. just created for introspection. That means that those instance_init() functions can also be called while a machine (and its CPUs) is already created, which triggers the assertion in cpu_models.c. So we must not use instance_init() for setting global state, but use the machine->init() function instead, which is really only called once when the machine comes to life. Fixes: 3b00f702c2 ("s390x/cpumodel: add zpci, aen and ais facilities") Message-ID: <20250120085059.239345-1-thuth@redhat.com> Reviewed-by: David Hildenbrand Signed-off-by: Thomas Huth --- hw/s390x/s390-virtio-ccw.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index 38aeba14ee..3af613d4e9 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -782,7 +782,6 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data) s390mc->hpage_1m_allowed = true; s390mc->max_threads = 1; - mc->init = ccw_init; mc->reset = s390_machine_reset; mc->block_default_type = IF_VIRTIO; mc->no_cdrom = 1; @@ -852,6 +851,12 @@ static const TypeInfo ccw_machine_info = { }; #define DEFINE_CCW_MACHINE_IMPL(latest, ...) \ + static void MACHINE_VER_SYM(mach_init, ccw, __VA_ARGS__)(MachineState *mach) \ + { \ + current_mc = S390_CCW_MACHINE_CLASS(MACHINE_GET_CLASS(mach)); \ + MACHINE_VER_SYM(instance_options, ccw, __VA_ARGS__)(mach); \ + ccw_init(mach); \ + } \ static void MACHINE_VER_SYM(class_init, ccw, __VA_ARGS__)( \ ObjectClass *oc, \ void *data) \ @@ -859,24 +864,18 @@ static const TypeInfo ccw_machine_info = { MachineClass *mc = MACHINE_CLASS(oc); \ MACHINE_VER_SYM(class_options, ccw, __VA_ARGS__)(mc); \ mc->desc = "Virtual s390x machine (version " MACHINE_VER_STR(__VA_ARGS__) ")"; \ + mc->init = MACHINE_VER_SYM(mach_init, ccw, __VA_ARGS__); \ MACHINE_VER_DEPRECATION(__VA_ARGS__); \ if (latest) { \ mc->alias = "s390-ccw-virtio"; \ mc->is_default = true; \ } \ } \ - static void MACHINE_VER_SYM(instance_init, ccw, __VA_ARGS__)(Object *obj) \ - { \ - MachineState *machine = MACHINE(obj); \ - current_mc = S390_CCW_MACHINE_CLASS(MACHINE_GET_CLASS(machine)); \ - MACHINE_VER_SYM(instance_options, ccw, __VA_ARGS__)(machine); \ - } \ static const TypeInfo MACHINE_VER_SYM(info, ccw, __VA_ARGS__) = \ { \ .name = MACHINE_VER_TYPE_NAME("s390-ccw-virtio", __VA_ARGS__), \ .parent = TYPE_S390_CCW_MACHINE, \ .class_init = MACHINE_VER_SYM(class_init, ccw, __VA_ARGS__), \ - .instance_init = MACHINE_VER_SYM(instance_init, ccw, __VA_ARGS__), \ }; \ static void MACHINE_VER_SYM(register, ccw, __VA_ARGS__)(void) \ { \ From 3936d0556383829b8db9518aed8badfed6513953 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Thu, 16 Jan 2025 12:58:24 +0100 Subject: [PATCH 5/9] pc-bios/s390-ccw/virtio: Add a function to reset a virtio device To be able to properly silence a virtio device after using it, we need a global function to reset the device. Reviewed-by: Jared Rossi Reviewed-by: Eric Farman Tested-by: Jared Rossi Message-ID: <20250116115826.192047-2-thuth@redhat.com> Signed-off-by: Thomas Huth --- pc-bios/s390-ccw/virtio.c | 7 ++++++- pc-bios/s390-ccw/virtio.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pc-bios/s390-ccw/virtio.c b/pc-bios/s390-ccw/virtio.c index 8b5a370bb3..cd6c99c7e3 100644 --- a/pc-bios/s390-ccw/virtio.c +++ b/pc-bios/s390-ccw/virtio.c @@ -217,6 +217,11 @@ int virtio_run(VDev *vdev, int vqid, VirtioCmd *cmd) return 0; } +int virtio_reset(VDev *vdev) +{ + return run_ccw(vdev, CCW_CMD_VDEV_RESET, NULL, 0, false); +} + int virtio_setup_ccw(VDev *vdev) { int i, cfg_size = 0; @@ -235,7 +240,7 @@ int virtio_setup_ccw(VDev *vdev) vdev->config.blk.blk_size = 0; /* mark "illegal" - setup started... */ vdev->guessed_disk_nature = VIRTIO_GDN_NONE; - run_ccw(vdev, CCW_CMD_VDEV_RESET, NULL, 0, false); + virtio_reset(vdev); status = VIRTIO_CONFIG_S_ACKNOWLEDGE; if (run_ccw(vdev, CCW_CMD_WRITE_STATUS, &status, sizeof(status), false)) { diff --git a/pc-bios/s390-ccw/virtio.h b/pc-bios/s390-ccw/virtio.h index 9faf3986b1..f13fa6f5fe 100644 --- a/pc-bios/s390-ccw/virtio.h +++ b/pc-bios/s390-ccw/virtio.h @@ -274,6 +274,7 @@ void vring_send_buf(VRing *vr, void *p, int len, int flags); int vr_poll(VRing *vr); int vring_wait_reply(void); int virtio_run(VDev *vdev, int vqid, VirtioCmd *cmd); +int virtio_reset(VDev *vdev); int virtio_setup_ccw(VDev *vdev); int virtio_net_init(void *mac_addr); From 68c95ed1db070f7545e487e742715f01a545aab0 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Thu, 16 Jan 2025 12:58:25 +0100 Subject: [PATCH 6/9] pc-bios/s390-ccw: Fix boot problem with virtio-net devices When we are trying to boot from virtio-net devices, the s390-ccw bios currently leaves the virtio-net device enabled after using it. That means that the receiving virt queues will continue to happily write incoming network packets into memory. This can corrupt data of the following boot process. For example, if you set up a second guest on a virtual network and create a lot of broadcast traffic there, e.g. with: ping -i 0.02 -s 1400 -b 192.168.1.255 and then you try to boot a guest with two boot devices, a network device first (which should not be bootable) and e.g. a bootable SCSI CD second, then this guest will fail to load the kernel from the CD image: $ qemu-system-s390x -m 2G -nographic -device virtio-scsi-ccw \ -netdev tap,id=net0 -device virtio-net-ccw,netdev=net0,bootindex=1 \ -drive if=none,file=test.iso,format=raw,id=cd1 \ -device scsi-cd,drive=cd1,bootindex=2 LOADPARM=[ ] Network boot device detected Network boot starting... Using MAC address: 52:54:00:12:34:56 Requesting information via DHCP: done Using IPv4 address: 192.168.1.76 Using TFTP server: 192.168.1.1 Trying pxelinux.cfg files... TFTP error: ICMP ERROR "port unreachable" Receiving data: 0 KBytes Repeating TFTP read request... TFTP error: ICMP ERROR "port unreachable" Failed to load OS from network. Failed to IPL from this network! LOADPARM=[ ] Using virtio-scsi. ! virtio-scsi:setup:inquiry: response VS RESP=ff ! ERROR: No suitable device for IPL. Halting... We really have to shut up the virtio-net devices after we're not using it anymore. The easiest way to do this is to simply reset the device, so let's do that now. Reviewed-by: Jared Rossi Reviewed-by: Eric Farman Tested-by: Jared Rossi Message-ID: <20250116115826.192047-3-thuth@redhat.com> Signed-off-by: Thomas Huth --- pc-bios/s390-ccw/netmain.c | 33 +++++++++++++++++++++++---------- pc-bios/s390-ccw/virtio-net.c | 5 +++++ pc-bios/s390-ccw/virtio.h | 1 + 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/pc-bios/s390-ccw/netmain.c b/pc-bios/s390-ccw/netmain.c index e46e470db4..335ea9b63e 100644 --- a/pc-bios/s390-ccw/netmain.c +++ b/pc-bios/s390-ccw/netmain.c @@ -153,19 +153,10 @@ static int tftp_load(filename_ip_t *fnip, void *buffer, int len) return rc; } -static int net_init(filename_ip_t *fn_ip) +static int net_init_ip(filename_ip_t *fn_ip) { int rc; - memset(fn_ip, 0, sizeof(filename_ip_t)); - - rc = virtio_net_init(mac); - if (rc < 0) { - puts("Could not initialize network device"); - return -101; - } - fn_ip->fd = rc; - printf(" Using MAC address: %02x:%02x:%02x:%02x:%02x:%02x\n", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); @@ -221,11 +212,33 @@ static int net_init(filename_ip_t *fn_ip) return rc; } +static int net_init(filename_ip_t *fn_ip) +{ + int rc; + + memset(fn_ip, 0, sizeof(filename_ip_t)); + + rc = virtio_net_init(mac); + if (rc < 0) { + puts("Could not initialize network device"); + return -101; + } + fn_ip->fd = rc; + + rc = net_init_ip(fn_ip); + if (rc < 0) { + virtio_net_deinit(); + } + + return rc; +} + static void net_release(filename_ip_t *fn_ip) { if (fn_ip->ip_version == 4) { dhcp_send_release(fn_ip->fd); } + virtio_net_deinit(); } /** diff --git a/pc-bios/s390-ccw/virtio-net.c b/pc-bios/s390-ccw/virtio-net.c index 578c89d0c5..301445bf97 100644 --- a/pc-bios/s390-ccw/virtio-net.c +++ b/pc-bios/s390-ccw/virtio-net.c @@ -140,3 +140,8 @@ int recv(int fd, void *buf, int maxlen, int flags) return len; } + +void virtio_net_deinit(void) +{ + virtio_reset(virtio_get_device()); +} diff --git a/pc-bios/s390-ccw/virtio.h b/pc-bios/s390-ccw/virtio.h index f13fa6f5fe..5c5e808a50 100644 --- a/pc-bios/s390-ccw/virtio.h +++ b/pc-bios/s390-ccw/virtio.h @@ -278,5 +278,6 @@ int virtio_reset(VDev *vdev); int virtio_setup_ccw(VDev *vdev); int virtio_net_init(void *mac_addr); +void virtio_net_deinit(void); #endif /* VIRTIO_H */ From bbfa7f8558d5346b6884108ad50df3517fe17358 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Thu, 16 Jan 2025 12:58:26 +0100 Subject: [PATCH 7/9] pc-bios/s390-ccw/netmain: Fix error messages with regards to the TFTP server The code in net_init_ip() currently bails out early if "rc" is less than 0, so the if-statements that check for negative "rc" codes to print out some specific error messages with regards to the TFTP server are never reached. Move them earlier to bring that dead code back to life. Reviewed-by: Jared Rossi Reviewed-by: Eric Farman Tested-by: Jared Rossi Message-ID: <20250116115826.192047-4-thuth@redhat.com> Signed-off-by: Thomas Huth --- pc-bios/s390-ccw/netmain.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/pc-bios/s390-ccw/netmain.c b/pc-bios/s390-ccw/netmain.c index 335ea9b63e..719a547ada 100644 --- a/pc-bios/s390-ccw/netmain.c +++ b/pc-bios/s390-ccw/netmain.c @@ -168,6 +168,14 @@ static int net_init_ip(filename_ip_t *fn_ip) if (fn_ip->ip_version == 4) { set_ipv4_address(fn_ip->own_ip); } + } else if (rc == -2) { + printf("ARP request to TFTP server (%d.%d.%d.%d) failed\n", + (fn_ip->server_ip >> 24) & 0xFF, (fn_ip->server_ip >> 16) & 0xFF, + (fn_ip->server_ip >> 8) & 0xFF, fn_ip->server_ip & 0xFF); + return -102; + } else if (rc == -4 || rc == -3) { + puts("Can't obtain TFTP server IP address"); + return -107; } else { puts("Could not get IP address"); return -101; @@ -183,17 +191,6 @@ static int net_init_ip(filename_ip_t *fn_ip) printf(" Using IPv6 address: %s\n", ip6_str); } - if (rc == -2) { - printf("ARP request to TFTP server (%d.%d.%d.%d) failed\n", - (fn_ip->server_ip >> 24) & 0xFF, (fn_ip->server_ip >> 16) & 0xFF, - (fn_ip->server_ip >> 8) & 0xFF, fn_ip->server_ip & 0xFF); - return -102; - } - if (rc == -4 || rc == -3) { - puts("Can't obtain TFTP server IP address"); - return -107; - } - printf(" Using TFTP server: "); if (fn_ip->ip_version == 4) { printf("%d.%d.%d.%d\n", From 64fa0de46ee3cc972af5d3ce8c5dc0db8198cd2b Mon Sep 17 00:00:00 2001 From: Jared Rossi Date: Fri, 17 Jan 2025 16:22:35 -0500 Subject: [PATCH 8/9] pc-bios/s390-ccw: Abort IPL on invalid loadparm Because the loadparm specifies an exact kernel the user wants to boot, if the loadparm is invalid it must represent a misconfiguration of the guest. Thus we should abort the IPL immediately, without attempting to use other devices, to avoid booting into an unintended guest image. Signed-off-by: Jared Rossi Message-ID: <20250117212235.1324063-2-jrossi@linux.ibm.com> Signed-off-by: Thomas Huth --- pc-bios/s390-ccw/bootmap.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pc-bios/s390-ccw/bootmap.c b/pc-bios/s390-ccw/bootmap.c index 56f2f75640..0f8baa0198 100644 --- a/pc-bios/s390-ccw/bootmap.c +++ b/pc-bios/s390-ccw/bootmap.c @@ -336,8 +336,7 @@ static int run_eckd_boot_script(block_number_t bmt_block_nr, debug_print_int("loadparm", loadparm); if (loadparm >= MAX_BOOT_ENTRIES) { - puts("loadparm value greater than max number of boot entries allowed"); - return -EINVAL; + panic("loadparm value greater than max number of boot entries allowed"); } memset(sec, FREE_SPACE_FILLER, sizeof(sec)); @@ -348,8 +347,8 @@ static int run_eckd_boot_script(block_number_t bmt_block_nr, block_nr = gen_eckd_block_num(&bmt->entry[loadparm].xeckd, ldipl); if (block_nr == NULL_BLOCK_NR) { - puts("Cannot find Boot Map Table Entry"); - return -EIO; + printf("The requested boot entry (%d) is invalid\n", loadparm); + panic("Invalid loadparm"); } memset(sec, FREE_SPACE_FILLER, sizeof(sec)); @@ -792,8 +791,12 @@ static int ipl_scsi(void) debug_print_int("loadparm", loadparm); if (loadparm >= MAX_BOOT_ENTRIES) { - puts("loadparm value greater than max number of boot entries allowed"); - return -EINVAL; + panic("loadparm value greater than max number of boot entries allowed"); + } + + if (!valid_entries[loadparm]) { + printf("The requested boot entry (%d) is invalid\n", loadparm); + panic("Invalid loadparm"); } return zipl_run(&prog_table->entry[loadparm].scsi); From 9744ceb94bf963ed42685c7d28024a77de2fbe78 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Mon, 20 Jan 2025 16:28:28 +0100 Subject: [PATCH 9/9] pc-bios: Update the s390 bios images with the recent changes Fix the problem with the non-quiesced virtio-net device and make sure to abort the boot process if the user specified a wrong loadparm parameter. Signed-off-by: Thomas Huth --- pc-bios/s390-ccw.img | Bin 79608 -> 96000 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/pc-bios/s390-ccw.img b/pc-bios/s390-ccw.img index 0cbedf0fa65fb87a9e19b3bcf0c4b81002801b5c..47240f0a74eec17b0da3ad334157d1b0e62632b4 100644 GIT binary patch literal 96000 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 Dgs*5J literal 79608 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%0AH+Q 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