Bug 218257 - [Nested VM] Failed to boot L2 Windows guest on L1 Windows guest
Summary: [Nested VM] Failed to boot L2 Windows guest on L1 Windows guest
Status: NEW
Alias: None
Product: Virtualization
Classification: Unclassified
Component: kvm (show other bugs)
Hardware: Intel Linux
: P3 normal
Assignee: virtualization_kvm
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-12 06:48 UTC by Ruifeng Gao
Modified: 2024-04-15 08:09 UTC (History)
2 users (show)

See Also:
Kernel Version:
Subsystem:
Regression: Yes
Bisected commit-id: a1c288f87de7aff94e87724127eabb6cdb38b120


Attachments
Captured failed screen on L2 guest (438.95 KB, image/png)
2023-12-12 06:48 UTC, Ruifeng Gao
Details

Description Ruifeng Gao 2023-12-12 06:48:05 UTC
Created attachment 305591 [details]
Captured failed screen on L2 guest

Environment:
------------
CPU Architecture: x86_64
Host OS: CentOS Stream 9
Guest OS L1: Windows 10 Pro (10.0.18362 N/A Build 18362), x64-based PC
Guest OS L2: Windows 10 Enterprises (10.0.10240 N/A Build 10240), x64-based PC
kvm.git next branch commit id: e9e60c82fe391d04db55a91c733df4a017c28b2f
qemu-kvm commit id: 
Host Kernel Version: 6.7.0-rc1
Hardware: Sapphire Rapids

Bug detailed description:
--------------------------
To verify two nested Windows guests scenarios, we used Windows image to create L1 guest, then failed to boot L2 Windows guest on L1 guest. The error screen is captured in attachment. 

Note: this is suspected to be a KVM Kernel bug by bisect the different commits:
kvm next                                 + qemu-kvm   = result
a1c288f87de7aff94e87724127eabb6cdb38b120 + d451e32c   = bad
e1a6d5cf10dd93fc27d8c85cd7b3e41f08a816e6 + d451e32c   = good

Reproduce steps:
----------------
1.create L1 guests:
qemu-system-x86_64 -accel kvm -cpu host -smp 8 -drive file=L1_VMWARE_L2_WIN10.img,if=none,id=virtio-disk0 -device virtio-blk-pci,drive=virtio-disk0,bootindex=0 -m 8192 -monitor pty -daemonize -vnc :7 -device virtio-net-pci,netdev=nic0,mac=00:05:66:34:98:e6 -netdev tap,id=nic0,br=virbr0,helper=/usr/local/libexec/qemu-bridge-helper,vhost=on
2. create L2 guests:
Using VMware Workstation to boot Win10 guest.

Current result:
----------------
L2 guest (Windows 10 guest) failed to boot up.

Expected result:
----------------
L2 guest (Windows 10 guest) boot up successfully.
Comment 1 Sean Christopherson 2023-12-13 17:00:25 UTC
On Tue, Dec 12, 2023, bugzilla-daemon@kernel.org wrote:
> Environment:
> ------------
> CPU Architecture: x86_64
> Host OS: CentOS Stream 9
> Guest OS L1: Windows 10 Pro (10.0.18362 N/A Build 18362), x64-based PC
> Guest OS L2: Windows 10 Enterprises (10.0.10240 N/A Build 10240), x64-based
> PC
> kvm.git next branch commit id: e9e60c82fe391d04db55a91c733df4a017c28b2f
> qemu-kvm commit id: 
> Host Kernel Version: 6.7.0-rc1
> Hardware: Sapphire Rapids
> 
> Bug detailed description:
> --------------------------
> To verify two nested Windows guests scenarios, we used Windows image to
> create
> L1 guest, then failed to boot L2 Windows guest on L1 guest. The error screen
> is
> captured in attachment. 
> 
> Note: this is suspected to be a KVM Kernel bug by bisect the different
> commits:
> kvm next                                 + qemu-kvm   = result
> a1c288f87de7aff94e87724127eabb6cdb38b120 + d451e32c   = bad
> e1a6d5cf10dd93fc27d8c85cd7b3e41f08a816e6 + d451e32c   = good

Assuming `git bisect` didn't point at exactly the merge commit, can you please
bisect to the exact commit, instead of the merge commit?  I.e.

  git bisect start
  git bisect bad a1c288f87de7aff94e87724127eabb6cdb38b120
  git bisect good e1a6d5cf10dd93fc27d8c85cd7b3e41f08a816e6

and go from there.

Hopefully it isn't the merge commit that's being blamed, as that will be far more
painful to figure out.
Comment 2 Ma Xiangfei 2024-04-15 08:09:41 UTC
This issue cannot reproduce in the latest kernel.
KVM commit/branch: 9bc60f73
Qemu commit/branch: 927284d6
Host Kernel: 6.9.0-rc1
Host OS: CentOS 9

Note You need to log in before you can comment on or make changes to this bug.