Skip to contentSkip to conversation

New: kvm-intel.nested=1 does not enable nested KVM

Bug 194923 [email protected] 1 participant 15 messages Mar 19, 2017 – Mar 21, 2017 KVM

lore
Share & tools
lore
#0 lore raw

https://bugzilla.kernel.org/show_bug.cgi?id=194923

            Bug ID: 194923
           Summary: kvm-intel.nested=1 does not enable nested KVM
           Product: Virtualization
           Version: unspecified
    Kernel Version: 4.8.17
          Hardware: Intel
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: blocking
          Priority: P1
         Component: kvm
          Assignee: [email protected]
          Reporter: [email protected]
        Regression: No

Kernel is booted with kvm-intel.nested=1 in arguments. cat /sys/module/kvm_intel/parameters/nested is "N".

These steps work for kernel 3.18.9. I apologize if the severity is too high, but this is a serious regression and prevents usage of previously available functionality.

Bug 64801 and 76141 may be related.

Signature · 2 lines
You are receiving this mail because:
You are watching the assignee of the bug.
#4 lore raw

[Bug 194923] kvm-intel.nested=1 does not enable nested KVM

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=194923

Kashyap Chamarthy ([email protected]) changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |[email protected]

--- Comment #3 from Kashyap Chamarthy ([email protected]) --- (In reply to R030t1 from comment #2)

Quoted 2 lines

Correction - kvm nesting is displayed as a feature in 4.1.7 but does not work guest-side. Will test other kernels time permitting.

Based on your comment#2, there's not much useful information to diagnose this issue further. You don't mention what kind of guest problem this is, or any other details.

Please provide details about your guest OS, and related details -- potentially dmidecode, x86info -a, dmesg from your physical host (level-0), and your level-1 guest (guest hypervisor).

Side note: A colleague who runs 4.9.13 Kernel reports that a Linux guest hypervisor was able to detect /dev/kvm just fine.

Signature · 2 lines
You are receiving this mail because:
You are watching the assignee of the bug.
#5 lore raw

[Bug 194923] kvm-intel.nested=1 does not enable nested KVM

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=194923

--- Comment #4 from [email protected] ---
(In reply to Kashyap Chamarthy from comment #3)

Quoted 4 lines

Based on your comment#2, there's not much useful information to diagnose this issue further. You don't mention what kind of guest problem this is, or any other details.

This problem was reported based on the behavior of a Windows guest, but I will see what I can do in a Linux guest.

I run qemu as follows:

QEMU_AUDIO_DRV=pa sudo qemu-system-x86_64 \
        -machine accel=kvm \
        -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,+vmx,kvm=on \
        -smp 4 \
        -m 8G \
        -drive if=pflash,format=raw,readonly,file=OVMF_CODE-pure-efi.fd \
        -drive if=pflash,format=raw,file=OVMF_VARS.fd \
        -net tap,ifname=tap0,script=no,downscript=no -net nic,model=virtio \
        -drive file=/dev/sdc,format=raw,cache=none,if=virtio \
        -drive file=windows_10_pro.iso,media=cdrom \
        -drive file=../virtio-win-0.1.126.iso,media=cdrom \
        -usbdevice tablet \
        -vga qxl \
        -soundhw hda 

I found instructions
(https://ladipro.wordpress.com/2017/02/24/running-hyperv-in-kvm-guest/) which gave me the options passed to the cpu flag. Using what the linked article gives does not work; I have to pass kvm=on to have Hyper-V in the Windows guest detect the ability to host VMs. It seems like passing kvm=on instructs qemu to lie about functionality, but when using my most recent kernel which does not support KVM nesting it properly reports that it is unable to pass virtualization extensions to the guest.

When Hyper-V can detect VT-x on my processor it will let me create guests but will be unable to run them:

Failed to start the virtual machine 'WindowsServer' because one of the
Hyper-V components is not running.

It is my guess that the Windows service which acts like qemu is unable to start due to being unable to use virtualization extensions due to some incompatibility with real hardware.

Quoted 4 lines

Please provide details about your guest OS, and related details -- potentially dmidecode, x86info -a, dmesg from your physical host (level-0), and your level-1 guest (guest hypervisor).

I'll do my best to attach what you've requested. I don't have very good guest integration set up so getting some of the information out may take some time.

Quoted 2 lines

Side note: A colleague who runs 4.9.13 Kernel reports that a Linux guest hypervisor was able to detect /dev/kvm just fine.

It may be hardware specific, but I am unsure why that would be. Considering the type of relationship Windows has with the hypervisor and the virtual hardware I am not sure it is right to blame it.

Signature · 2 lines
You are receiving this mail because:
You are watching the assignee of the bug.