
On Wed, Nov 28, 2018 at 07:13:05AM -0500, John Ferlan wrote:
On 11/28/18 5:02 AM, Daniel P. Berrangé wrote:
On Tue, Nov 27, 2018 at 02:15:39PM -0500, John Ferlan wrote:
On 11/27/18 12:05 PM, Andrea Bolognani wrote:
On Mon, 2018-11-26 at 18:38 -0500, John Ferlan wrote: [...]
+static bool +virQEMUCapsKVMIsNested(void) +{ + VIR_AUTOFREE(char *) kConfig = NULL; + + /* Intel, AMD, and s390 related checks */ + if ((kConfig = virKModConfig()) && + (strstr(kConfig, "kvm_intel nested=1") || + strstr(kConfig, "kvm_amd nested=1") || + strstr(kConfig, "kvm nested=1"))) + return true; + return false; +}
I might be doing it wrong, but I'm pretty sure I've enabled nested virtualization properly on my laptop given that I can successfully run 'modprobe kvm_intel' inside the L1 guest, and yet I get
# modprobe -c | grep -c nested=1 0
both in the L0 host and the L1 guest, so this check doesn't seem accurate to me.
Oh, wait, I get it now: 'modprobe -c' doesn't dump the *current* host configuration, but the *static* one! So if you enable nested KVM support by doing
# modprobe -r kvm_intel # modprobe kvm_intel nested=1
like I did, then the check above will not report it as enabled even though it is; conversely, if you drop the appropriate config snippet in /etc/modprobe.d/ but don't reload the module it will report it as enabled even though it's not!
Ugh, sigh... Yep, I was thinking primarily the static config option since we had helpers to read. Of course that won't be enough. Joy, more code to probe... Maybe it is easier to just say - clear your capabilities cache if you alter that particular kernel value.
Surely its already easier just to ask the kernel for the live status
$ cat /sys/module/kvm_intel/parameters/nested 1
My commentary was more towards I was hoping to "reuse" the exising kmod helpers ;-) before I had thought about or written any code to read the live data.
The other "annoying" part is that you have "1" in your output and I have "Y" or "N". So much for "consistency".
Actually I just invented that output from memory and got it wrong :) Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|