With nested virtualization enabled it was possible with 4.2 and 4.3 to create L1 RHEV hypervisors running on RHEL 6.7 that could then launch L2 vm's. With 4.4 this is no longer possible The baremetal system is Fedora 23, currently running 4.4.5. On this an L1 RHEV hypervisor runs RHEL 6.7 with kernel 2.6.32. Any L2 VM launched in RHEV with this combination gets stuck booting and you soon start to see cpu soft lockups on the L1. adding a modprobe.d file on the L1 with options kvm_intel vpid=0 regains the ability to launch VM's. Doing this on the baremetal host causes the L1 to panic and reboot when you try to launch an L2 VM. As an additional piece of information it still seems possible to launch vm's on L1 RHEL 7 Openstack compute nodes, so it may be the combination of 4.4+ with ~2.6.32. I ripped these out in 4.4.6 and rebuilt the kernel at which I once again no longer saw vpid in /proc/cpuinfo on the L1 and am able to boot L2 vms again: https://git.kernel.org/torvalds/c/99b83ac893b84ed1a62ad6d1f2b6cc32026b9e85 https://git.kernel.org/torvalds/c/089d7b6ec5151ad06a2cd524bc0580d311b641ad https://git.kernel.org/torvalds/c/5c614b3583e7b6dab0c86356fa36c2bcbb8322a0 4.4.4 and 4.5.0 are also affected.
Yes, it is a bug in 2.6.32 which we obviously should work around. I've sent a patch to the KVM mailing list.
Great, thank you. I will give this a try and report back.
I tested with your patches and they work great. I can boot vm's with 4.4.6 with your patches applied and vpid showing up on the L1 host. Thanks!