diff options
Diffstat (limited to 'results/classifier/105/boot/1516')
| -rw-r--r-- | results/classifier/105/boot/1516 | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/results/classifier/105/boot/1516 b/results/classifier/105/boot/1516 new file mode 100644 index 00000000..3327f45f --- /dev/null +++ b/results/classifier/105/boot/1516 @@ -0,0 +1,52 @@ +boot: 0.931 +instruction: 0.873 +device: 0.819 +graphic: 0.754 +semantic: 0.729 +vnc: 0.610 +mistranslation: 0.470 +network: 0.424 +socket: 0.388 +KVM: 0.366 +assembly: 0.281 +other: 0.225 + +QEMU does not reload kernel image on guest reboot (direct kernel boot) +Description of problem: +I am using virtiofs as root filesystem with QEMU direct kernel boot. The kernel is loaded from the guests directory structure that is exported from the host. + +The problem is that QEMU does not reload the kernel image file from disk during a guest reboot. This means it is not possible to update the kernel from inside the guest and do a simple reboot to load it. A full power cycle of the guest is required to load the updated kernel image. +Steps to reproduce: +1. Migrate a Linux guest to virtiofs as root fs. +2. Enable QEMU direct kernel boot and point to guest's kernel in the exported root filesystem. +3. Boot. +4. Update the kernel inside the guest. Overwrite the existing kernel image +5. Issue `reboot` inside the guest. +6. When the guest reboots, the old kernel is still booted, even though the image file was overwritten. +7. Issue `poweroff` inside the guest. +8. Issue `virsh start <guest-vm>` +9. Now the new kernel image is booted. +Additional information: +XML: +``` +<type arch='x86_64' machine='pc-q35-7.0'>hvm</type> + <kernel>/media/vm/libvirt/images/alpine-q/root/boot/vmlinuz-virt</kernel> + <initrd>/media/vm/libvirt/images/alpine-q/root/boot/initramfs-virt</initrd> + <cmdline>rootfstype=virtiofs root=root rw</cmdline> + <boot dev='hd'/> + <bootmenu enable='no'/> + </os> + +... + + <filesystem type='mount' accessmode='passthrough'> + <driver type='virtiofs'/> + <binary path='/usr/libexec/virtiofsd' xattr='on'> + <cache mode='always'/> + <lock posix='on' flock='on'/> + </binary> + <source dir='/media/vm/libvirt/images/alpine-q/root'/> + <target dir='root'/> + <address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/> + </filesystem> +``` |