Hi,
I'm reporting a critical regression on ppc64le that causes all KVM
guests to hang immediately during startup. Git bisect identified commit
98884e0cc10997a17ce9abfd6ff10be19224ca6a as the first bad commit. The
commit completely breaks KVM functionality on ppc64le.
Regression Details:
Working Version: QEMU 10.2.50 (v10.2.0-1669-gffcf1a7981)
Broken Version: QEMU 10.2.50 (v10.2.0-1816-g3fb456e9a0)
Bad Commit: 98884e0cc10997a17ce9abfd6ff10be19224ca6a "accel/kvm: add
changes required to support KVM VM file descriptor change"
Commit Link:
https://gitlab.com/qemu-project/qemu/-/commit/98884e0cc10997a17ce9abfd6ff10be19224ca6a
Environment:
Host: Fedora 42, Kernel 7.0.0-rc2, Power11 (ppc64le)
Libvirt: 12.1.0
Guest: Fedora 42, Kernel 7.0.0-rc2
Machine Type: pseries with KVM acceleration
Build Configuration:
git clone https://gitlab.com/qemu-project/qemu.git
cd qemu
git submodule init
git submodule update --recursive
./configure --target-list=ppc64-softmmu --disable-tcg --prefix=/usr
make && make install
Reproduction:
Using virt-install:
/usr/bin/virt-install --connect=qemu:///system --hvm --accelerate --name
'avocado-vt-vm1' --machine pseries --memory=32768
--vcpu=32,sockets=1,cores=32,threads=1 --import --nographics
--os-variant rhel8.0 --serial pty --memballoon model=virtio --controller
type=scsi,model=virtio-scsi --disk
path=/home/kvmci/tests/data/avocado-vt/images/rhel8.0devel-ppc64le.qcow2,bus=scsi,size=10,format=qcow2
--network=bridge=virbr0,model=virtio --boot
emulator=/usr/bin/qemu-system-ppc64
Result: Starting install...
<hangs indefinitely with no output>
Using direct QEMU command:
/usr/bin/qemu-system-ppc64 -name avocado-vt-vm1 -machine
pseries,accel=kvm -enable-kvm -m 32768 -smp
32,sockets=1,cores=32,threads=1 -nographic -serial pty -device
virtio-balloon -device virtio-scsi-pci,id=scsi0 -drive
file=/home/kvmci/tests/data/avocado-vt/images/rhel8.0devel-ppc64le.qcow2,if=none,id=drive-scsi0-0-0,format=qcow2
-device scsi-hd,bus=scsi0.0,drive=drive-scsi0-0-0 -netdev
bridge,id=net0,br=virbr0 -device virtio-net-pci,netdev=net0
Result: <hangs indefinitely with no output>
Analysis:
The commit introduces VM file descriptor change support with
architecture-specific hooks.
I attempted the following fixes without success:
1. Changed abort() to return 0; in stubs/kvm.c
2. Added early return in kvm_reset_vmfd() when
kvm_arch_supports_vmfd_change() returns false
Git Bisect Log:
# git bisect bad
98884e0cc10997a17ce9abfd6ff10be19224ca6a is the first bad commit
commit 98884e0cc10997a17ce9abfd6ff10be19224ca6a (HEAD)
Author: Ani Sinha <[email protected]>
Date: Wed Feb 25 09:19:10 2026 +0530
accel/kvm: add changes required to support KVM VM file descriptor
change
This change adds common kvm specific support to handle KVM VM file
descriptor
change. KVM VM file descriptor can change as a part of confidential
guest reset
mechanism. A new function api kvm_arch_on_vmfd_change() per
architecture platform is added in order to implement architecture
specific
changes required to support it. A subsequent patch will add x86
specific
implementation for kvm_arch_on_vmfd_change() as currently only x86
supports
confidential guest reset.
Signed-off-by: Ani Sinha <[email protected]>
Link:
https://lore.kernel.org/r/[email protected]
Signed-off-by: Paolo Bonzini <[email protected]>
MAINTAINERS | 6 ++++++
accel/kvm/kvm-all.c | 88
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
accel/kvm/trace-events | 1 +
include/system/kvm.h | 3 +++
stubs/kvm.c | 22 ++++++++++++++++++++++
stubs/meson.build | 1 +
target/i386/kvm/kvm.c | 10 ++++++++++
7 files changed, 128 insertions(+), 3 deletions(-)
create mode 100644 stubs/kvm.c
# git bisect log
git bisect start
git bisect good ffcf1a7981793973ffbd8100a7c3c6042d02ae23
git bisect bad 3fb456e9a0e9eef6a71d9b49bfff596a0f0046e9
git bisect bad e76c30bb13ecb9dc716fa629954bfb6253056ce2
git bisect good 9bdc612a18588975f5776ee4e562df607fea1b2c
git bisect bad 40c015e96942fd2a3e4d5ace6063b3333a3dd372
git bisect good df8df3cb6b743372ebb335bd8404bc3d748da350
git bisect bad 0f53f021ad1ede28dc8944686544e496cab02e5e
git bisect bad 9f0c2b3032639315faf141010a2603b0dbf56230
git bisect bad 98884e0cc10997a17ce9abfd6ff10be19224ca6a
first bad commit: [98884e0cc10997a17ce9abfd6ff10be19224ca6a]
Thanks,
Misbah Anjum N <[email protected]>