You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.7 KiB
40 lines
1.7 KiB
From 795d7cadb7b49ae11e2544ce325779f8d5ec7526 Mon Sep 17 00:00:00 2001 |
|
From: Andrew Jones <drjones@redhat.com> |
|
Date: Mon, 9 Nov 2015 14:29:09 +0100 |
|
Subject: [PATCH] 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. |
|
|
|
Cherry-picked from: 3728dcde4542b7b2792d9ef0baeb742d82983b03 |
|
Resolves: #1278165 |
|
--- |
|
src/shared/virt.c | 2 ++ |
|
1 file changed, 2 insertions(+) |
|
|
|
diff --git a/src/shared/virt.c b/src/shared/virt.c |
|
index d3ce8dda7f..55a6ca90fb 100644 |
|
--- a/src/shared/virt.c |
|
+++ b/src/shared/virt.c |
|
@@ -142,12 +142,14 @@ static int detect_vm_dmi(const char **_id) { |
|
#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" |
|
}; |
|
|
|
static const char dmi_vendor_table[] = |
|
+ "KVM\0" "kvm\0" |
|
"QEMU\0" "qemu\0" |
|
/* http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009458 */ |
|
"VMware\0" "vmware\0"
|
|
|