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.
41 lines
1.7 KiB
41 lines
1.7 KiB
7 years ago
|
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 d3ce8dda7..55a6ca90f 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"
|