summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Jones <drjones@redhat.com>2015-11-03 13:31:03 -0600
committerSven Eden <yamakuzure@gmx.net>2017-04-26 12:58:55 +0200
commit5d945323d594ac23a43d9936c7e2f5266776a7b1 (patch)
tree342c3ffbb5b9c3239068d2492fdb33fea8309ae0 /src
parent27edf6f36e27bff66b04908b4dcebd359ae08116 (diff)
detect-virt: dmi: look for KVM
Some guests (ARM, AArch64, x86-RHEL) have 'KVM' in the product name. Look for that first in order to more precisely report "kvm" when detecting a QEMU/KVM guest. Without this patch we report "qemu", even if KVM acceleration is in use on ARM/AArch64 guests. I've only tested a backported version of this and the previous patch on an AArch64 guest (which worked). Of course it would be nice to get regression testing on all guest types that depend on dmi done.
Diffstat (limited to 'src')
-rw-r--r--src/basic/virt.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/basic/virt.c b/src/basic/virt.c
index e07fa5a69..73bf0d7cf 100644
--- a/src/basic/virt.c
+++ b/src/basic/virt.c
@@ -143,6 +143,7 @@ static int detect_vm_dmi(void) {
#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
static const char *const dmi_vendors[] = {
+ "/sys/class/dmi/id/product_name", /* Test this before sys_vendor to detect KVM over QEMU */
"/sys/class/dmi/id/sys_vendor",
"/sys/class/dmi/id/board_vendor",
"/sys/class/dmi/id/bios_vendor"
@@ -152,6 +153,7 @@ static int detect_vm_dmi(void) {
const char *vendor;
int id;
} dmi_vendor_table[] = {
+ { "KVM", VIRTUALIZATION_KVM },
{ "QEMU", VIRTUALIZATION_QEMU },
/* http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009458 */
{ "VMware", VIRTUALIZATION_VMWARE },