Leonard den Ottolander
2016-Sep-23 13:05 UTC
[CentOS] How to enable the svm cpu flag inside a vm?
Hello, I'm trying to get the Android Emulator to run inside a kvm vm on CentOS-6. Apparently the latest Android Emulators cannot run without hardware acceleration so I am trying to get the vm to see the svm cpu flag. Host: $ grep model\ name /proc/cpuinfo | sort -u model name : AMD Phenom(tm) II X4 965 Processor $ grep svm /proc/cpuinfo | sort -u flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt npt lbrv svm_lock nrip_save $ cat /sys/module/kvm_amd/parameters/nested 1 I have tried copying the cpu options (Opteron_G3) in the host cpu configuration and setting the svm flag to either "model", "required" or "force" to no avail: $ ps waux | grep qemu qemu 7962 7.2 21.9 3722092 2680668 ? Rl 13:23 6:36 /usr/libexec/qemu-kvm -name C7-Android -S -M rhel6.6.0 -cpu Opteron_G3,+invtsc,+wdt,+skinit,+ibs,+osvw,+3dnowprefetch,+cr8legacy, +extapic,+cmp_legacy,+3dnow,+3dnowext,+pdpe1gb,+fxsr_opt,+mmxext,+ht, +vme -enable-kvm -m 3072 -realtime mlock=off -smp <snip> So the question is: How do I enable the svm flag in the guest? Regards, Leonard. -- mount -t life -o ro /dev/dna /genetic/research
Leonard den Ottolander
2016-Sep-25 14:38 UTC
[CentOS] How to enable the svm cpu flag inside a vm?
Hi, On Fri, 2016-09-23 at 15:05 +0200, Leonard den Ottolander wrote:> So the question is: How do I enable the svm flag in the guest?The qemu-kvm option "-enable-nesting" that I dug up in the source looks promising. No mention in the man page on either C6 or C7 but it is mentioned here: https://www.redhat.com/archives/libvir-list/2012-October/msg01138.html How do I pass the "-enable-nesting" option to qemu-kvm using either virt-manager.py, virsh or the domain xml? Hoping to avoid having to patch the source a such: --- qemu-kvm-0.12.1.2.000/target-i386/helper.c 2009-12-29 21:46:34.000000000 +0100 +++ qemu-kvm-0.12.1.2/target-i386/helper.c 2016-09-25 16:35:02.984334623 +0200 @@ -1811,8 +1811,10 @@ void cpu_x86_cpuid(CPUX86State *env, uin /* disable CPU features that KVM cannot support */ /* svm */ +/* if (!kvm_nested) *ecx &= ~CPUID_EXT3_SVM; +*/ /* 3dnow */ *edx &= ~0xc0000000; } else { Regards, Leonard. -- mount -t life -o ro /dev/dna /genetic/research
Jonathan Billings
2016-Sep-25 14:46 UTC
[CentOS] How to enable the svm cpu flag inside a vm?
On Sun, Sep 25, 2016 at 04:38:39PM +0200, Leonard den Ottolander wrote:> The qemu-kvm option "-enable-nesting" that I dug up in the source looks > promising. No mention in the man page on either C6 or C7 but it is > mentioned here: > https://www.redhat.com/archives/libvir-list/2012-October/msg01138.html > > How do I pass the "-enable-nesting" option to qemu-kvm using either > virt-manager.py, virsh or the domain xml?I saw this in the RHEL 7.3 beta release notes: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7-Beta/html/7.3_Release_Notes/technology_previews_virtualization.html Nested Virtualization will be a tech preview in RHEL 7.3 Beta, and so it'll be available after RHEL 7.3 is released and CentOS rebuilds it. -- Jonathan Billings <billings at negate.org>