import virt-what-1.25-1.el8

This commit is contained in:
CentOS Sources 2022-11-08 01:54:43 -05:00 committed by Stepan Oksanichenko
parent ba49f522f4
commit 77af87d624
30 changed files with 125 additions and 8116 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/virt-what-1.18.tar.gz
SOURCES/virt-what-1.25.tar.gz

View File

@ -1 +1 @@
cf60480c17be5350835a0b23dc82012ec711eea1 SOURCES/virt-what-1.18.tar.gz
dcbec6a76eddadd63b5139e296e28f600201c37f SOURCES/virt-what-1.25.tar.gz

View File

@ -1,25 +0,0 @@
From eefc1e7e3dd8fb422baf0f13aec1df9880541b83 Mon Sep 17 00:00:00 2001
From: Jasper Lievisse Adriaanse <bug@jasper.la>
Date: Thu, 10 Aug 2017 08:44:01 +0100
Subject: [PATCH 01/25] Missing have_cpuinfo check.
---
virt-what.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/virt-what.in b/virt-what.in
index 8c27b11..9050035 100644
--- a/virt-what.in
+++ b/virt-what.in
@@ -308,7 +308,7 @@ if ! "$skip_qemu_kvm"; then
# option, since /proc/cpuinfo will not contain the QEMU
# string. QEMU 2.10 added a new CPUID leaf, so this
# problem only triggered for older QEMU
- if grep -q 'QEMU' "${root}/proc/cpuinfo"; then
+ if have_cpuinfo && grep -q 'QEMU' "${root}/proc/cpuinfo"; then
echo qemu
fi
fi
--
2.18.4

View File

@ -1,48 +0,0 @@
From 9d90704a05dee7704470eff818a1c44aeef6c880 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
Date: Fri, 4 Aug 2017 12:02:08 -0300
Subject: [PATCH 02/25] Remove bashisms
Use [ instead of [[ so we fall back to test if necessary:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html
Gbp-Pq: Name Remove-bashisms.patch
---
virt-what.in | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/virt-what.in b/virt-what.in
index 9050035..a05e0db 100644
--- a/virt-what.in
+++ b/virt-what.in
@@ -360,20 +360,20 @@ if [ "$cpuid" = "OpenBSDVMM58" ]; then
fi
# Check for LDoms
-if [[ "$arch" == sparc* && -e ${root}/dev/mdesc ]]; then
+if [ "${arch#sparc}" != "$arch" ] && [ -e "${root}/dev/mdesc" ]; then
echo ldoms
- if [[ -d ${root}/sys/class/vlds/ctrl && \
- -d ${root}/sys/class/vlds/sp ]]; then
+ if [ -d "${root}/sys/class/vlds/ctrl" ] && \
+ [ -d "${root}/sys/class/vlds/sp" ]; then
echo ldoms-control
else
echo ldoms-guest
fi
MDPROP="${root}/usr/lib/ldoms/mdprop.py"
- if [[ -x ${MDPROP} ]]; then
- if [[ -n $($MDPROP -v iodevice device-type=pciex) ]]; then
+ if [ -x "${MDPROP}" ]; then
+ if [ -n "$($MDPROP -v iodevice device-type=pciex)" ]; then
echo ldoms-root
echo ldoms-io
- elif [[ -n $($MDPROP -v iov-device vf-id=0) ]]; then
+ elif [ -n "$($MDPROP -v iov-device vf-id=0)" ]; then
echo ldoms-io
fi
fi
--
2.18.4

View File

@ -1,36 +0,0 @@
From a821dc9961d457c086fffcc16a911cb6f9f8659a Mon Sep 17 00:00:00 2001
From: xiliang <xiliang@redhat.com>
Date: Sun, 18 Jun 2017 00:33:28 +0800
Subject: [PATCH 03/25] As xen pv guest can access cpuid from Intel CPUs
started IvyBridge onwards have CPUID Faulting, added one more check in
virt-what.
---
virt-what.in | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/virt-what.in b/virt-what.in
index a05e0db..247348e 100644
--- a/virt-what.in
+++ b/virt-what.in
@@ -1,6 +1,6 @@
#!/bin/sh -
# @configure_input@
-# Copyright (C) 2008-2015 Red Hat Inc.
+# Copyright (C) 2008-2017 Red Hat Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -223,7 +223,8 @@ fi
# Check for Xen.
-if [ "$cpuid" = "XenVMMXenVMM" ]; then
+if [ "$cpuid" = "XenVMMXenVMM" ] &&
+ ! echo "$dmi" | grep -q 'No SMBIOS nor DMI entry point found, sorry'; then
echo xen; echo xen-hvm
# Check for AWS
if echo "$dmi" | grep -q 'Version: [0-9]\.[0-9]\.amazon'; then
--
2.18.4

View File

@ -1,28 +0,0 @@
From 7db94c8fe63f2c7ec3ac27cc5ff54ec1e1686aeb Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 17 Oct 2017 14:47:09 +0100
Subject: [PATCH 04/25] Recognize ppc64le (little endian) virtualization
(RHBZ#1147876).
Tested by Laurent Vivier, see:
https://bugzilla.redhat.com/show_bug.cgi?id=1147876#c35 & ff.
---
virt-what.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/virt-what.in b/virt-what.in
index 247348e..29b7b0d 100644
--- a/virt-what.in
+++ b/virt-what.in
@@ -339,7 +339,7 @@ fi
# example /proc/ppc64/lparcfg systemtype line
# system_type=IBM pSeries (emulated by qemu)
-if [ "$arch" = "ppc64" ]; then
+if [ "$arch" = "ppc64" ] || [ "$arch" = "ppc64le" ] ; then
if have_cpuinfo && grep -q 'platform.**pSeries' "${root}/proc/cpuinfo"; then
if grep -q 'model.*emulated by qemu' "${root}/proc/cpuinfo"; then
echo ibm_power-kvm
--
2.18.4

View File

@ -1,30 +0,0 @@
From 52870e8a264653d7921e8a4edff56d4b050614d8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
Date: Sat, 27 Jan 2018 13:11:36 +0100
Subject: [PATCH 05/25] Determine architecture via 'uname -m'
'uname -p' only gives unknown on x86_64, i386, arm6l (rpi) and aarch64
(scaleways).
---
virt-what.in | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/virt-what.in b/virt-what.in
index 29b7b0d..2011ff4 100644
--- a/virt-what.in
+++ b/virt-what.in
@@ -102,9 +102,9 @@ cpuid=$(virt-what-cpuid-helper)
dmi=$(LANG=C dmidecode 2>&1)
# Architecture.
-# Note for the purpose of testing, we only call uname with -p option.
+# Note for the purpose of testing, we only call uname with -m option.
-arch=$(uname -p | sed -e 's/i.86/i386/' | sed -e 's/arm.*/arm/')
+arch=$(uname -m | sed -e 's/i.86/i386/' | sed -e 's/arm.*/arm/')
# Check for VMware.
# cpuid check added by Chetan Loke.
--
2.18.4

View File

@ -1,44 +0,0 @@
From d7fd8a7843030d2b1719353edfcd49dba3000122 Mon Sep 17 00:00:00 2001
From: Jasper Lievisse Adriaanse <jasper@humppa.nl>
Date: Wed, 25 Apr 2018 16:41:32 +0200
Subject: [PATCH 06/25] Allow using sysctl, for example when /proc isn't
available
---
virt-what.in | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/virt-what.in b/virt-what.in
index 2011ff4..d037a99 100644
--- a/virt-what.in
+++ b/virt-what.in
@@ -38,6 +38,13 @@ have_cpuinfo () {
test -e "${root}/proc/cpuinfo"
}
+use_sysctl() {
+ # Lacking /proc, on some systems sysctl can be used instead.
+ OS=$(uname) || fail "failed to get operating system name"
+
+ [ "$OS" == "OpenBSD" ]
+}
+
fail () {
echo "virt-what: $1" >&2
exit 1
@@ -304,6 +311,12 @@ if ! "$skip_qemu_kvm"; then
# We are running as a spapr KVM guest on ppc64
echo kvm
skip_lkvm=true
+ elif use_sysctl; then
+ # SmartOS KVM
+ product=$(sysctl -n hw.product)
+ if echo "$product" | grep -q 'SmartDC HVM'; then
+ echo kvm
+ fi
else
# This is known to fail for qemu with the explicit -cpu
# option, since /proc/cpuinfo will not contain the QEMU
--
2.18.4

View File

@ -1,28 +0,0 @@
From 5efe9f7a58cd0cdc6f4c279c7f0a69e57fbda56f Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 28 Aug 2018 18:32:41 +0100
Subject: [PATCH 07/25] Replace == with = since the former is a bash-ism.
Thanks: Eric Blake.
Fixes commit d7fd8a7843030d2b1719353edfcd49dba3000122.
---
virt-what.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/virt-what.in b/virt-what.in
index d037a99..a2f8f19 100644
--- a/virt-what.in
+++ b/virt-what.in
@@ -42,7 +42,7 @@ use_sysctl() {
# Lacking /proc, on some systems sysctl can be used instead.
OS=$(uname) || fail "failed to get operating system name"
- [ "$OS" == "OpenBSD" ]
+ [ "$OS" = "OpenBSD" ]
}
fail () {
--
2.18.4

View File

@ -1,79 +0,0 @@
From 147c648e950ef45b7a5b7b3e8cb30b89c435593b Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 31 Oct 2018 15:04:24 +0000
Subject: [PATCH 08/25] aws: Detect AWS from dmidecode information.
Move the AWS detection out from under Xen. AWS runs on KVM and
baremetal these days. The dmidecode information for KVM and baremetal
is a little bit different so we also need to adjust the test for that
case.
Typical SMBIOS info for Xen:
BIOS Information
Vendor: Xen
Version: 4.2.amazon
Typical SMBIOS info for KVM and baremetal:
BIOS Information
Vendor: Amazon EC2
Version: 1.0
Thanks: Vitaly Kuznetsov, Jon Masters.
---
virt-what.in | 13 +++++++++----
virt-what.pod | 8 ++++++--
2 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/virt-what.in b/virt-what.in
index a2f8f19..f685461 100644
--- a/virt-what.in
+++ b/virt-what.in
@@ -233,10 +233,6 @@ fi
if [ "$cpuid" = "XenVMMXenVMM" ] &&
! echo "$dmi" | grep -q 'No SMBIOS nor DMI entry point found, sorry'; then
echo xen; echo xen-hvm
- # Check for AWS
- if echo "$dmi" | grep -q 'Version: [0-9]\.[0-9]\.amazon'; then
- echo aws
- fi
skip_qemu_kvm=true
elif [ -d "${root}/proc/xen" ]; then
echo xen
@@ -392,3 +388,12 @@ if [ "${arch#sparc}" != "$arch" ] && [ -e "${root}/dev/mdesc" ]; then
fi
fi
fi
+
+# Check for AWS.
+# AWS on Xen.
+if echo "$dmi" | grep -q 'Version: [0-9]\.[0-9]\.amazon'; then
+ echo aws
+# AWS on baremetal or KVM.
+elif echo "$dmi" | grep -q 'Vendor: Amazon EC2'; then
+ echo aws
+fi
diff --git a/virt-what.pod b/virt-what.pod
index ebfc190..5a0bdfc 100644
--- a/virt-what.pod
+++ b/virt-what.pod
@@ -27,9 +27,13 @@ don't know about or cannot detect.
=item B<aws>
-Amazon Web Services cloud guest.
+Amazon Web Services.
-Status: contributed by Qi Guo.
+Note that virt-what will print this fact for baremetal AWS instances,
+which you might not consider to be true virtualization. In this case
+other facts (eg. C<kvm> or C<xen>) would I<not> be present.
+
+Status: contributed by Qi Guo, Vitaly Kuznetsov, confirmed by RWMJ.
=item B<bhyve>
--
2.18.4

View File

@ -1,32 +0,0 @@
From 4bceb38a6102ca95bde79205efaa643a0824d3a2 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 31 Oct 2018 15:35:34 +0000
Subject: [PATCH 09/25] tests: Fix tests when run on AWS.
When running on AWS two of the tests failed. This was because the
tests did _not_ include a working dmidecode binary, hence the platform
dmidecode binary was being run instead, and that was detecting as AWS
owing to the previous commit. Fix this by supplying a working
dmidecode binary for those tests.
---
tests/ldoms/sbin/dmidecode | 3 +++
tests/ppc64-baremetal/sbin/dmidecode | 0
2 files changed, 3 insertions(+)
create mode 100755 tests/ldoms/sbin/dmidecode
mode change 100644 => 100755 tests/ppc64-baremetal/sbin/dmidecode
diff --git a/tests/ldoms/sbin/dmidecode b/tests/ldoms/sbin/dmidecode
new file mode 100755
index 0000000..3efbee3
--- /dev/null
+++ b/tests/ldoms/sbin/dmidecode
@@ -0,0 +1,3 @@
+#!/bin/sh -
+# dmidecode fails on this platform.
+exit 1
diff --git a/tests/ppc64-baremetal/sbin/dmidecode b/tests/ppc64-baremetal/sbin/dmidecode
old mode 100644
new mode 100755
--
2.18.4

View File

@ -1,290 +0,0 @@
From 129a25f9854930928351c8cc3913a5b9a1c558b4 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 31 Oct 2018 15:23:45 +0000
Subject: [PATCH 10/25] aws: Add regression test for AWS on KVM on x86_64
architecture.
---
Makefile.am | 6 ++
tests/aws-kvm-x86/proc/cpuinfo | 52 ++++++++++++++
tests/aws-kvm-x86/proc/self/status | 46 +++++++++++++
tests/aws-kvm-x86/sbin/dmidecode | 68 +++++++++++++++++++
tests/aws-kvm-x86/sbin/uname | 2 +
tests/aws-kvm-x86/sbin/virt-what-cpuid-helper | 2 +
tests/test-aws-kvm-x86.sh | 35 ++++++++++
7 files changed, 211 insertions(+)
create mode 100644 tests/aws-kvm-x86/proc/cpuinfo
create mode 100644 tests/aws-kvm-x86/proc/self/status
create mode 100755 tests/aws-kvm-x86/sbin/dmidecode
create mode 100755 tests/aws-kvm-x86/sbin/uname
create mode 100755 tests/aws-kvm-x86/sbin/virt-what-cpuid-helper
create mode 100755 tests/test-aws-kvm-x86.sh
diff --git a/Makefile.am b/Makefile.am
index 3c0d5ba..1029902 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -39,6 +39,7 @@ virt-what.txt: virt-what.pod
endif
TESTS = \
+ tests/test-aws-kvm-x86.sh \
tests/test-baremetal.sh \
tests/test-bhyve.sh \
tests/test-docker.sh \
@@ -73,6 +74,11 @@ TESTS = \
EXTRA_DIST = \
virt-what.in \
virt-what.pod \
+ tests/aws-kvm-x86/proc/cpuinfo \
+ tests/aws-kvm-x86/proc/self/status \
+ tests/aws-kvm-x86/sbin/dmidecode \
+ tests/aws-kvm-x86/sbin/uname \
+ tests/aws-kvm-x86/sbin/virt-what-cpuid-helper \
tests/baremetal/proc/cpuinfo \
tests/baremetal/proc/self/status \
tests/baremetal/sbin/dmidecode \
diff --git a/tests/aws-kvm-x86/proc/cpuinfo b/tests/aws-kvm-x86/proc/cpuinfo
new file mode 100644
index 0000000..449f885
--- /dev/null
+++ b/tests/aws-kvm-x86/proc/cpuinfo
@@ -0,0 +1,52 @@
+processor : 0
+vendor_id : GenuineIntel
+cpu family : 6
+model : 85
+model name : Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz
+stepping : 3
+microcode : 0x1000141
+cpu MHz : 2999.996
+cache size : 25344 KB
+physical id : 0
+siblings : 2
+core id : 0
+cpu cores : 1
+apicid : 0
+initial apicid : 0
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 ida arat pku ospke
+bogomips : 5999.99
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 1
+vendor_id : GenuineIntel
+cpu family : 6
+model : 85
+model name : Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz
+stepping : 3
+microcode : 0x1000141
+cpu MHz : 2999.996
+cache size : 25344 KB
+physical id : 0
+siblings : 2
+core id : 0
+cpu cores : 1
+apicid : 1
+initial apicid : 1
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 ida arat pku ospke
+bogomips : 5999.99
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
diff --git a/tests/aws-kvm-x86/proc/self/status b/tests/aws-kvm-x86/proc/self/status
new file mode 100644
index 0000000..5baf8de
--- /dev/null
+++ b/tests/aws-kvm-x86/proc/self/status
@@ -0,0 +1,46 @@
+Name: cat
+Umask: 0022
+State: R (running)
+Tgid: 20776
+Ngid: 0
+Pid: 20776
+PPid: 17444
+TracerPid: 0
+Uid: 0 0 0 0
+Gid: 0 0 0 0
+FDSize: 256
+Groups: 0
+VmPeak: 107972 kB
+VmSize: 107972 kB
+VmLck: 0 kB
+VmPin: 0 kB
+VmHWM: 360 kB
+VmRSS: 360 kB
+RssAnon: 76 kB
+RssFile: 284 kB
+RssShmem: 0 kB
+VmData: 180 kB
+VmStk: 132 kB
+VmExe: 44 kB
+VmLib: 1936 kB
+VmPTE: 36 kB
+VmSwap: 0 kB
+Threads: 1
+SigQ: 1/14026
+SigPnd: 0000000000000000
+ShdPnd: 0000000000000000
+SigBlk: 0000000000000000
+SigIgn: 0000000000000000
+SigCgt: 0000000000000000
+CapInh: 0000000000000000
+CapPrm: 0000001fffffffff
+CapEff: 0000001fffffffff
+CapBnd: 0000001fffffffff
+CapAmb: 0000000000000000
+Seccomp: 0
+Cpus_allowed: 3
+Cpus_allowed_list: 0-1
+Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
+Mems_allowed_list: 0
+voluntary_ctxt_switches: 1
+nonvoluntary_ctxt_switches: 1
diff --git a/tests/aws-kvm-x86/sbin/dmidecode b/tests/aws-kvm-x86/sbin/dmidecode
new file mode 100755
index 0000000..3b5aa03
--- /dev/null
+++ b/tests/aws-kvm-x86/sbin/dmidecode
@@ -0,0 +1,68 @@
+#!/bin/sh -
+cat <<'EOF'
+# dmidecode 3.0
+Getting SMBIOS data from sysfs.
+SMBIOS 2.7 present.
+5 structures occupying 233 bytes.
+Table at 0x000F8FD0.
+
+Handle 0x0000, DMI type 0, 24 bytes
+BIOS Information
+ Vendor: Amazon EC2
+ Version: 1.0
+ Release Date: 10/16/2017
+ Address: 0xF0000
+ Runtime Size: 64 kB
+ ROM Size: 64 kB
+ Characteristics:
+ PCI is supported
+ EDD is supported
+ ACPI is supported
+ System is a virtual machine
+ BIOS Revision: 1.0
+
+Handle 0x0001, DMI type 1, 27 bytes
+System Information
+ Manufacturer: Amazon EC2
+ Product Name: c5.large
+ Version: Not Specified
+ Serial Number: ec2cecdd-c1c8-7a71-0ea8-aef580c9f845
+ UUID: EC2CECDD-C1C8-7A71-0EA8-AEF580C9F845
+ Wake-up Type: Power Switch
+ SKU Number: Not Specified
+ Family: Not Specified
+
+Handle 0x0002, DMI type 2, 15 bytes
+Base Board Information
+ Manufacturer: Amazon EC2
+ Product Name: Not Specified
+ Version: Not Specified
+ Serial Number: Not Specified
+ Asset Tag: i-04f9b1c56b3c301b5
+ Features: None
+ Location In Chassis: Not Specified
+ Chassis Handle: 0x0003
+ Type: Other
+ Contained Object Handles: 0
+
+Handle 0x0003, DMI type 3, 21 bytes
+Chassis Information
+ Manufacturer: Amazon EC2
+ Type: Other
+ Lock: Not Present
+ Version: Not Specified
+ Serial Number: Not Specified
+ Asset Tag: Amazon EC2
+ Boot-up State: Safe
+ Power Supply State: Safe
+ Thermal State: Safe
+ Security Status: None
+ OEM Information: 0x00000000
+ Height: Unspecified
+ Number Of Power Cords: 1
+ Contained Elements: 0
+
+Handle 0x0004, DMI type 127, 4 bytes
+End Of Table
+
+EOF
diff --git a/tests/aws-kvm-x86/sbin/uname b/tests/aws-kvm-x86/sbin/uname
new file mode 100755
index 0000000..ab0ec89
--- /dev/null
+++ b/tests/aws-kvm-x86/sbin/uname
@@ -0,0 +1,2 @@
+#!/bin/sh -
+echo x86_64
diff --git a/tests/aws-kvm-x86/sbin/virt-what-cpuid-helper b/tests/aws-kvm-x86/sbin/virt-what-cpuid-helper
new file mode 100755
index 0000000..f52a9d7
--- /dev/null
+++ b/tests/aws-kvm-x86/sbin/virt-what-cpuid-helper
@@ -0,0 +1,2 @@
+#!/bin/sh -
+echo KVMKVMKVM
diff --git a/tests/test-aws-kvm-x86.sh b/tests/test-aws-kvm-x86.sh
new file mode 100755
index 0000000..db4c19f
--- /dev/null
+++ b/tests/test-aws-kvm-x86.sh
@@ -0,0 +1,35 @@
+# Test for AWS.
+# Copyright (C) 2018 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+root=tests/aws-kvm-x86
+
+output="$(./virt-what --test-root=$root 2>&1)"
+expected="kvm
+aws"
+
+if [ "$output" != "$expected" ]; then
+ echo "$0: test failed because output did not match expected"
+ echo "Expected output was:"
+ echo "----------------------------------------"
+ echo "$expected"
+ echo "----------------------------------------"
+ echo "But the actual output of the program was:"
+ echo "----------------------------------------"
+ echo "$output"
+ echo "----------------------------------------"
+ exit 1
+fi
--
2.18.4

View File

@ -1,358 +0,0 @@
From 350291e1ca417eab9d2aa2408589f0259cac007c Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 31 Oct 2018 15:23:45 +0000
Subject: [PATCH 12/25] aws: Add regression test for AWS on Xen on x86_64
architecture.
---
Makefile.am | 6 +
tests/aws-xen-x86/proc/cpuinfo | 52 +++++++
tests/aws-xen-x86/proc/self/status | 46 ++++++
tests/aws-xen-x86/sbin/dmidecode | 135 ++++++++++++++++++
tests/aws-xen-x86/sbin/uname | 2 +
tests/aws-xen-x86/sbin/virt-what-cpuid-helper | 2 +
tests/test-aws-xen-x86.sh | 36 +++++
7 files changed, 279 insertions(+)
create mode 100644 tests/aws-xen-x86/proc/cpuinfo
create mode 100644 tests/aws-xen-x86/proc/self/status
create mode 100755 tests/aws-xen-x86/sbin/dmidecode
create mode 100755 tests/aws-xen-x86/sbin/uname
create mode 100755 tests/aws-xen-x86/sbin/virt-what-cpuid-helper
create mode 100755 tests/test-aws-xen-x86.sh
diff --git a/Makefile.am b/Makefile.am
index ad47097..22680a0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -41,6 +41,7 @@ endif
TESTS = \
tests/test-aws-baremetal-x86.sh \
tests/test-aws-kvm-x86.sh \
+ tests/test-aws-xen-x86.sh \
tests/test-baremetal.sh \
tests/test-bhyve.sh \
tests/test-docker.sh \
@@ -85,6 +86,11 @@ EXTRA_DIST = \
tests/aws-kvm-x86/sbin/dmidecode \
tests/aws-kvm-x86/sbin/uname \
tests/aws-kvm-x86/sbin/virt-what-cpuid-helper \
+ tests/aws-xen-x86/proc/cpuinfo \
+ tests/aws-xen-x86/proc/self/status \
+ tests/aws-xen-x86/sbin/dmidecode \
+ tests/aws-xen-x86/sbin/uname \
+ tests/aws-xen-x86/sbin/virt-what-cpuid-helper \
tests/baremetal/proc/cpuinfo \
tests/baremetal/proc/self/status \
tests/baremetal/sbin/dmidecode \
diff --git a/tests/aws-xen-x86/proc/cpuinfo b/tests/aws-xen-x86/proc/cpuinfo
new file mode 100644
index 0000000..ff0b16b
--- /dev/null
+++ b/tests/aws-xen-x86/proc/cpuinfo
@@ -0,0 +1,52 @@
+processor : 0
+vendor_id : GenuineIntel
+cpu family : 6
+model : 63
+model name : Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHz
+stepping : 2
+microcode : 0x3c
+cpu MHz : 2900.281
+cache size : 25600 KB
+physical id : 0
+siblings : 2
+core id : 0
+cpu cores : 1
+apicid : 0
+initial apicid : 0
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+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 pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase bmi1 avx2 smep bmi2 erms invpcid xsaveopt
+bogomips : 5800.06
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
+processor : 1
+vendor_id : GenuineIntel
+cpu family : 6
+model : 63
+model name : Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHz
+stepping : 2
+microcode : 0x3c
+cpu MHz : 2900.281
+cache size : 25600 KB
+physical id : 0
+siblings : 2
+core id : 0
+cpu cores : 1
+apicid : 1
+initial apicid : 1
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+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 pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase bmi1 avx2 smep bmi2 erms invpcid xsaveopt
+bogomips : 5800.06
+clflush size : 64
+cache_alignment : 64
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
diff --git a/tests/aws-xen-x86/proc/self/status b/tests/aws-xen-x86/proc/self/status
new file mode 100644
index 0000000..4e93816
--- /dev/null
+++ b/tests/aws-xen-x86/proc/self/status
@@ -0,0 +1,46 @@
+Name: cat
+Umask: 0022
+State: R (running)
+Tgid: 22828
+Ngid: 0
+Pid: 22828
+PPid: 17431
+TracerPid: 0
+Uid: 0 0 0 0
+Gid: 0 0 0 0
+FDSize: 256
+Groups: 0
+VmPeak: 107972 kB
+VmSize: 107972 kB
+VmLck: 0 kB
+VmPin: 0 kB
+VmHWM: 360 kB
+VmRSS: 360 kB
+RssAnon: 76 kB
+RssFile: 284 kB
+RssShmem: 0 kB
+VmData: 180 kB
+VmStk: 132 kB
+VmExe: 44 kB
+VmLib: 1936 kB
+VmPTE: 36 kB
+VmSwap: 0 kB
+Threads: 1
+SigQ: 0/14231
+SigPnd: 0000000000000000
+ShdPnd: 0000000000000000
+SigBlk: 0000000000000000
+SigIgn: 0000000000000000
+SigCgt: 0000000000000000
+CapInh: 0000000000000000
+CapPrm: 0000001fffffffff
+CapEff: 0000001fffffffff
+CapBnd: 0000001fffffffff
+CapAmb: 0000000000000000
+Seccomp: 0
+Cpus_allowed: 7fff
+Cpus_allowed_list: 0-14
+Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
+Mems_allowed_list: 0
+voluntary_ctxt_switches: 1
+nonvoluntary_ctxt_switches: 1
diff --git a/tests/aws-xen-x86/sbin/dmidecode b/tests/aws-xen-x86/sbin/dmidecode
new file mode 100755
index 0000000..bc9cde5
--- /dev/null
+++ b/tests/aws-xen-x86/sbin/dmidecode
@@ -0,0 +1,135 @@
+#!/bin/sh -
+cat <<'EOF'
+# dmidecode 3.0
+Getting SMBIOS data from sysfs.
+SMBIOS 2.7 present.
+12 structures occupying 398 bytes.
+Table at 0x000EB01F.
+
+Handle 0x0000, DMI type 0, 24 bytes
+BIOS Information
+ Vendor: Xen
+ Version: 4.2.amazon
+ Release Date: 08/24/2006
+ Address: 0xE8000
+ Runtime Size: 96 kB
+ ROM Size: 64 kB
+ Characteristics:
+ PCI is supported
+ EDD is supported
+ Targeted content distribution is supported
+ BIOS Revision: 4.2
+
+Handle 0x0100, DMI type 1, 27 bytes
+System Information
+ Manufacturer: Xen
+ Product Name: HVM domU
+ Version: 4.2.amazon
+ Serial Number: ec2f5c70-6dfc-83a7-f5ec-ef7b97aea4c9
+ UUID: EC2F5C70-6DFC-83A7-F5EC-EF7B97AEA4C9
+ Wake-up Type: Power Switch
+ SKU Number: Not Specified
+ Family: Not Specified
+
+Handle 0x0300, DMI type 3, 13 bytes
+Chassis Information
+ Manufacturer: Xen
+ Type: Other
+ Lock: Not Present
+ Version: Not Specified
+ Serial Number: Not Specified
+ Asset Tag: Not Specified
+ Boot-up State: Safe
+ Power Supply State: Safe
+ Thermal State: Safe
+ Security Status: Unknown
+
+Handle 0x0401, DMI type 4, 26 bytes
+Processor Information
+ Socket Designation: CPU 1
+ Type: Central Processor
+ Family: Other
+ Manufacturer: Intel
+ ID: F2 06 03 00 FF FB 89 17
+ Version: Not Specified
+ Voltage: Unknown
+ External Clock: Unknown
+ Max Speed: 2900 MHz
+ Current Speed: 2900 MHz
+ Status: Populated, Enabled
+ Upgrade: Other
+
+Handle 0x0402, DMI type 4, 26 bytes
+Processor Information
+ Socket Designation: CPU 2
+ Type: Central Processor
+ Family: Other
+ Manufacturer: Intel
+ ID: F2 06 03 00 FF FB 89 17
+ Version: Not Specified
+ Voltage: Unknown
+ External Clock: Unknown
+ Max Speed: 2900 MHz
+ Current Speed: 2900 MHz
+ Status: Populated, Enabled
+ Upgrade: Other
+
+Handle 0x0B00, DMI type 11, 5 bytes
+OEM Strings
+ String 1: Xen
+
+Handle 0x1000, DMI type 16, 19 bytes
+Physical Memory Array
+ Location: Other
+ Use: System Memory
+ Error Correction Type: Multi-bit ECC
+ Maximum Capacity: 3840 MB
+ Error Information Handle: Not Provided
+ Number Of Devices: 1
+
+Handle 0x1100, DMI type 17, 34 bytes
+Memory Device
+ Array Handle: 0x1000
+ Error Information Handle: 0x0000
+ Total Width: 64 bits
+ Data Width: 64 bits
+ Size: 3840 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 0
+ Bank Locator: Not Specified
+ Type: RAM
+ Type Detail: None
+ Speed: Unknown
+ Manufacturer: Not Specified
+ Serial Number: Not Specified
+ Asset Tag: Not Specified
+ Part Number: Not Specified
+ Rank: Unknown
+ Configured Clock Speed: Unknown
+
+Handle 0x1300, DMI type 19, 31 bytes
+Memory Array Mapped Address
+ Starting Address: 0x00000000000
+ Ending Address: 0x000EFFFFFFF
+ Range Size: 3840 MB
+ Physical Array Handle: 0x1000
+ Partition Width: 1
+
+Handle 0x1400, DMI type 20, 35 bytes
+Memory Device Mapped Address
+ Starting Address: 0x00000000000
+ Ending Address: 0x000EFFFFFFF
+ Range Size: 3840 MB
+ Physical Device Handle: 0x1100
+ Memory Array Mapped Address Handle: 0x1300
+ Partition Row Position: 1
+
+Handle 0x2000, DMI type 32, 11 bytes
+System Boot Information
+ Status: No errors detected
+
+Handle 0x7F00, DMI type 127, 4 bytes
+End Of Table
+
+EOF
diff --git a/tests/aws-xen-x86/sbin/uname b/tests/aws-xen-x86/sbin/uname
new file mode 100755
index 0000000..ab0ec89
--- /dev/null
+++ b/tests/aws-xen-x86/sbin/uname
@@ -0,0 +1,2 @@
+#!/bin/sh -
+echo x86_64
diff --git a/tests/aws-xen-x86/sbin/virt-what-cpuid-helper b/tests/aws-xen-x86/sbin/virt-what-cpuid-helper
new file mode 100755
index 0000000..8d8df4a
--- /dev/null
+++ b/tests/aws-xen-x86/sbin/virt-what-cpuid-helper
@@ -0,0 +1,2 @@
+#!/bin/sh -
+echo XenVMMXenVMM
diff --git a/tests/test-aws-xen-x86.sh b/tests/test-aws-xen-x86.sh
new file mode 100755
index 0000000..22b7f83
--- /dev/null
+++ b/tests/test-aws-xen-x86.sh
@@ -0,0 +1,36 @@
+# Test for AWS.
+# Copyright (C) 2018 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+root=tests/aws-xen-x86
+
+output="$(./virt-what --test-root=$root 2>&1)"
+expected="xen
+xen-hvm
+aws"
+
+if [ "$output" != "$expected" ]; then
+ echo "$0: test failed because output did not match expected"
+ echo "Expected output was:"
+ echo "----------------------------------------"
+ echo "$expected"
+ echo "----------------------------------------"
+ echo "But the actual output of the program was:"
+ echo "----------------------------------------"
+ echo "$output"
+ echo "----------------------------------------"
+ exit 1
+fi
--
2.18.4

View File

@ -1,244 +0,0 @@
From f25e07d43db40355b321493f78758ea058fa3849 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 31 Oct 2018 15:23:45 +0000
Subject: [PATCH 13/25] aws: Add regression test for AWS on KVM on ARM
architecture.
---
Makefile.am | 1 +
tests/aws-kvm-arm/proc/cpuinfo | 9 +++
tests/aws-kvm-arm/proc/self/status | 54 +++++++++++++++
tests/aws-kvm-arm/sbin/dmidecode | 68 +++++++++++++++++++
tests/aws-kvm-arm/sbin/uname | 2 +
tests/aws-kvm-arm/sbin/virt-what-cpuid-helper | 2 +
tests/test-aws-kvm-arm.sh | 36 ++++++++++
7 files changed, 172 insertions(+)
create mode 100644 tests/aws-kvm-arm/proc/cpuinfo
create mode 100644 tests/aws-kvm-arm/proc/self/status
create mode 100755 tests/aws-kvm-arm/sbin/dmidecode
create mode 100755 tests/aws-kvm-arm/sbin/uname
create mode 100755 tests/aws-kvm-arm/sbin/virt-what-cpuid-helper
create mode 100755 tests/test-aws-kvm-arm.sh
diff --git a/Makefile.am b/Makefile.am
index 22680a0..67502fc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -40,6 +40,7 @@ endif
TESTS = \
tests/test-aws-baremetal-x86.sh \
+ tests/test-aws-kvm-arm.sh \
tests/test-aws-kvm-x86.sh \
tests/test-aws-xen-x86.sh \
tests/test-baremetal.sh \
diff --git a/tests/aws-kvm-arm/proc/cpuinfo b/tests/aws-kvm-arm/proc/cpuinfo
new file mode 100644
index 0000000..bc5a5bb
--- /dev/null
+++ b/tests/aws-kvm-arm/proc/cpuinfo
@@ -0,0 +1,9 @@
+processor : 0
+BogoMIPS : 166.66
+Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
+CPU implementer : 0x41
+CPU architecture: 8
+CPU variant : 0x0
+CPU part : 0xd08
+CPU revision : 3
+
diff --git a/tests/aws-kvm-arm/proc/self/status b/tests/aws-kvm-arm/proc/self/status
new file mode 100644
index 0000000..121a8cc
--- /dev/null
+++ b/tests/aws-kvm-arm/proc/self/status
@@ -0,0 +1,54 @@
+Name: cat
+Umask: 0022
+State: R (running)
+Tgid: 17874
+Ngid: 0
+Pid: 17874
+PPid: 9992
+TracerPid: 0
+Uid: 0 0 0 0
+Gid: 0 0 0 0
+FDSize: 256
+Groups: 0
+NStgid: 17874
+NSpid: 17874
+NSpgid: 17874
+NSsid: 9992
+VmPeak: 109760 kB
+VmSize: 109760 kB
+VmLck: 0 kB
+VmPin: 0 kB
+VmHWM: 832 kB
+VmRSS: 832 kB
+RssAnon: 448 kB
+RssFile: 384 kB
+RssShmem: 0 kB
+VmData: 384 kB
+VmStk: 192 kB
+VmExe: 64 kB
+VmLib: 1664 kB
+VmPTE: 192 kB
+VmPMD: 128 kB
+VmSwap: 0 kB
+HugetlbPages: 0 kB
+Threads: 1
+SigQ: 0/1470
+SigPnd: 0000000000000000
+ShdPnd: 0000000000000000
+SigBlk: 0000000000000000
+SigIgn: 0000000000000000
+SigCgt: 0000000000000000
+CapInh: 0000000000000000
+CapPrm: 0000003fffffffff
+CapEff: 0000003fffffffff
+CapBnd: 0000003fffffffff
+CapAmb: 0000000000000000
+NoNewPrivs: 0
+Seccomp: 0
+Speculation Store Bypass: unknown
+Cpus_allowed: 1
+Cpus_allowed_list: 0
+Mems_allowed: 1
+Mems_allowed_list: 0
+voluntary_ctxt_switches: 0
+nonvoluntary_ctxt_switches: 0
diff --git a/tests/aws-kvm-arm/sbin/dmidecode b/tests/aws-kvm-arm/sbin/dmidecode
new file mode 100755
index 0000000..d126758
--- /dev/null
+++ b/tests/aws-kvm-arm/sbin/dmidecode
@@ -0,0 +1,68 @@
+#!/bin/sh -
+cat <<'EOF'
+# dmidecode 3.1
+Getting SMBIOS data from sysfs.
+SMBIOS 2.7 present.
+5 structures occupying 233 bytes.
+Table at 0x7F780000.
+
+Handle 0x0000, DMI type 0, 24 bytes
+BIOS Information
+ Vendor: Amazon EC2
+ Version: 1.0
+ Release Date: 12/1/2018
+ Address: 0xF0000
+ Runtime Size: 64 kB
+ ROM Size: 64 kB
+ Characteristics:
+ PCI is supported
+ EDD is supported
+ ACPI is supported
+ System is a virtual machine
+ BIOS Revision: 1.0
+
+Handle 0x0001, DMI type 1, 27 bytes
+System Information
+ Manufacturer: Amazon EC2
+ Product Name: a1.medium
+ Version: Not Specified
+ Serial Number: ec2ce86a-12c2-9388-d9b0-8dc833cba752
+ UUID: ec2ce86a-12c2-9388-d9b0-8dc833cba752
+ Wake-up Type: Power Switch
+ SKU Number: Not Specified
+ Family: Not Specified
+
+Handle 0x0002, DMI type 2, 15 bytes
+Base Board Information
+ Manufacturer: Amazon EC2
+ Product Name: Not Specified
+ Version: Not Specified
+ Serial Number: Not Specified
+ Asset Tag: i-01c1b85d3dcc02ed7
+ Features: None
+ Location In Chassis: Not Specified
+ Chassis Handle: 0x0003
+ Type: Other
+ Contained Object Handles: 0
+
+Handle 0x0003, DMI type 3, 21 bytes
+Chassis Information
+ Manufacturer: Amazon EC2
+ Type: Other
+ Lock: Not Present
+ Version: Not Specified
+ Serial Number: Not Specified
+ Asset Tag: Amazon EC2
+ Boot-up State: Safe
+ Power Supply State: Safe
+ Thermal State: Safe
+ Security Status: None
+ OEM Information: 0x00000000
+ Height: Unspecified
+ Number Of Power Cords: 1
+ Contained Elements: 0
+
+Handle 0xFEFF, DMI type 127, 4 bytes
+End Of Table
+
+EOF
diff --git a/tests/aws-kvm-arm/sbin/uname b/tests/aws-kvm-arm/sbin/uname
new file mode 100755
index 0000000..bd33a2d
--- /dev/null
+++ b/tests/aws-kvm-arm/sbin/uname
@@ -0,0 +1,2 @@
+#!/bin/sh -
+echo aarch64
diff --git a/tests/aws-kvm-arm/sbin/virt-what-cpuid-helper b/tests/aws-kvm-arm/sbin/virt-what-cpuid-helper
new file mode 100755
index 0000000..4475399
--- /dev/null
+++ b/tests/aws-kvm-arm/sbin/virt-what-cpuid-helper
@@ -0,0 +1,2 @@
+#!/bin/sh -
+# prints nothing but exits successfully
diff --git a/tests/test-aws-kvm-arm.sh b/tests/test-aws-kvm-arm.sh
new file mode 100755
index 0000000..8875421
--- /dev/null
+++ b/tests/test-aws-kvm-arm.sh
@@ -0,0 +1,36 @@
+# Test for AWS.
+# Copyright (C) 2018 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+root=tests/aws-kvm-arm
+
+output="$(./virt-what --test-root=$root 2>&1)"
+# XXX At the moment KVM cannot be detected on this platform.
+# We hope to fix that, but for now the only fact printed is "aws".
+expected="aws"
+
+if [ "$output" != "$expected" ]; then
+ echo "$0: test failed because output did not match expected"
+ echo "Expected output was:"
+ echo "----------------------------------------"
+ echo "$expected"
+ echo "----------------------------------------"
+ echo "But the actual output of the program was:"
+ echo "----------------------------------------"
+ echo "$output"
+ echo "----------------------------------------"
+ exit 1
+fi
--
2.18.4

View File

@ -1,25 +0,0 @@
From 56427ce169d5a6dc46ed6c6555ee3f7c4e0843d6 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 3 Oct 2019 09:08:19 +0100
Subject: [PATCH 14/25] build: Remove *~ files on make clean.
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
index 67502fc..48fd518 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -15,7 +15,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-CLEANFILES = virt-what
+CLEANFILES = virt-what *~
AM_CPPFLAGS = -Wall
--
2.18.4

File diff suppressed because it is too large Load Diff

View File

@ -1,26 +0,0 @@
From 5c2c251d9aae98e6a629b966bdd8cae2aa1dedaf Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 3 Oct 2019 10:16:08 +0100
Subject: [PATCH 16/25] build: Add .gitignore to tarball.
Mainly to keep maintainer-check-extra-dist happy.
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
index b62738f..1cb73b7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -19,7 +19,7 @@ AM_CPPFLAGS = -Wall
CLEANFILES = virt-what *~
-EXTRA_DIST = virt-what.in virt-what.pod
+EXTRA_DIST = .gitignore virt-what.in virt-what.pod
SUBDIRS = . tests
--
2.18.4

View File

@ -1,51 +0,0 @@
From b6161b67b0bd542169e13cdfa0488a0266e3ae7a Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 3 Oct 2019 10:13:43 +0100
Subject: [PATCH 17/25] maintainer: Add rules for maintainers.
Adds:
make maintainer-check-extra-dist
make maintainer-commit
make maintainer-tag
---
Makefile.am | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/Makefile.am b/Makefile.am
index 1cb73b7..5435132 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -41,3 +41,30 @@ virt-what.txt: virt-what.pod
pod2text $? > $@
endif
+
+#----------------------------------------------------------------------
+# Maintainers only!
+
+# Check no files are missing from EXTRA_DIST rules, and that all
+# generated files have been included in the tarball. (Note you must
+# have done 'make dist')
+maintainer-check-extra-dist:
+ @zcat $(PACKAGE_NAME)-$(VERSION).tar.gz | tar tf - | sort | \
+ sed 's,^$(PACKAGE_NAME)-$(VERSION)/,,' > tarfiles
+ @git ls-files | \
+ sort > gitfiles
+ @comm -13 tarfiles gitfiles > comm-out
+ @echo Checking for differences between EXTRA_DIST and git ...
+ @cat comm-out
+ @[ ! -s comm-out ]
+ @rm tarfiles gitfiles comm-out
+ @echo PASS: EXTRA_DIST tests
+
+# Commit everything in the current directory and set the commit
+# message to the current version number.
+maintainer-commit:
+ git commit -a -m "Version $(VERSION)."
+
+# Tag HEAD with the current version.
+maintainer-tag:
+ git tag -a v$(VERSION) -m "Version $(VERSION)." -f
--
2.18.4

View File

@ -1,118 +0,0 @@
From a5471559e7398418f1bb9c538a7bfc8f39e9ae98 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 4 Oct 2019 15:57:42 +0300
Subject: [PATCH 18/25] Fix virt-what-cpuid-helper.
The value returned in %eax is the max_entry (eg. 0x40000000
if there are no further leafs). However it is not reliable.
In addition if there are multiple leafs we should probably
only print the highest one.
Also use uint32_t instead of unsigned int.
Thanks: Paolo Bonzini.
---
virt-what-cpuid-helper.c | 67 ++++++++++++++++++++++++++++------------
1 file changed, 48 insertions(+), 19 deletions(-)
diff --git a/virt-what-cpuid-helper.c b/virt-what-cpuid-helper.c
index 7812545..0cd4a6f 100644
--- a/virt-what-cpuid-helper.c
+++ b/virt-what-cpuid-helper.c
@@ -1,5 +1,5 @@
/* virt-what-cpuid-helper: Are we running inside KVM or Xen HVM?
- * Copyright (C) 2008 Red Hat Inc.
+ * Copyright (C) 2008-2019 Red Hat Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -21,14 +21,35 @@
*/
#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
#include <string.h>
#if defined(__i386__) || defined(__x86_64__)
-static unsigned int
-cpuid (unsigned int eax, char *sig)
+/* Known x86 hypervisor signatures. Note that if you add a new test
+ * to virt-what.in you may need to update this list. The signature is
+ * always 12 bytes except in the case of KVM.
+ */
+static int
+known_signature (char *sig)
{
- unsigned int *sig32 = (unsigned int *) sig;
+ return
+ strcmp (sig, "bhyve bhyve ") == 0 ||
+ strcmp (sig, "KVMKVMKVM") == 0 ||
+ strcmp (sig, "LKVMLKVMLKVM") == 0 ||
+ strcmp (sig, "Microsoft Hv") == 0 ||
+ strcmp (sig, "OpenBSDVMM58") == 0 ||
+ strcmp (sig, "TCGTCGTCGTCG") == 0 ||
+ strcmp (sig, "VMwareVMware") == 0 ||
+ strcmp (sig, "XenVMMXenVMM") == 0 ||
+ 0;
+}
+
+static uint32_t
+cpuid (uint32_t eax, char *sig)
+{
+ uint32_t *sig32 = (uint32_t *) sig;
asm volatile (
"xchgl %%ebx,%1; xor %%ebx,%%ebx; cpuid; xchgl %%ebx,%1"
@@ -43,24 +64,32 @@ static void
cpu_sig (void)
{
char sig[13];
- unsigned int base = 0x40000000, leaf = base;
- unsigned int max_entries;
+ const uint32_t base = 0x40000000;
+ uint32_t leaf;
- memset (sig, 0, sizeof sig);
- max_entries = cpuid (leaf, sig);
- puts (sig);
-
- /* Most hypervisors only have information in leaf 0x40000000, but
- * upstream Xen contains further leaf entries (in particular when
- * used with Viridian [HyperV] extensions). CPUID is supposed to
- * return the maximum leaf offset in %eax, so that's what we use,
- * but only if it looks sensible.
+ /* Most hypervisors only have information in leaf 0x40000000.
+ *
+ * Some hypervisors have "Viridian [HyperV] extensions", and those
+ * must appear in slot 0x40000000, but they will also have the true
+ * hypervisor in a higher slot.
+ *
+ * CPUID is supposed to return the maximum leaf offset in %eax, but
+ * this is not reliable. Instead we check the returned signatures
+ * against a known list (the others will be empty or garbage) and
+ * only print the ones we know about. This is OK because if we add
+ * a new test in virt-what we can update the list.
+ *
+ * By searching backwards we only print the highest entry, thus
+ * ignoring Viridian for Xen (and Nutanix). If we ever encounter a
+ * hypervisor that has more than 2 entries we may need to revisit
+ * this.
*/
- if (max_entries > 3 && max_entries < 0x10000) {
- for (leaf = base + 0x100; leaf <= base + max_entries; leaf += 0x100) {
- memset (sig, 0, sizeof sig);
- cpuid (leaf, sig);
+ for (leaf = base + 0xff00; leaf >= base; leaf -= 0x100) {
+ memset (sig, 0, sizeof sig);
+ cpuid (leaf, sig);
+ if (known_signature (sig)) {
puts (sig);
+ break;
}
}
}
--
2.18.4

View File

@ -1,405 +0,0 @@
From 01ea13d9813df93e294b0d9776d4cefd54b1609b Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 4 Oct 2019 16:25:55 +0300
Subject: [PATCH 19/25] Add support for Nutanix Acropolis Hypervisor (AHV)
(RHBZ#1756381).
Thanks: Cristian Seres for providing access to a guest.
---
configure.ac | 2 +
tests/nutanix-ahv/Makefile.am | 28 ++++
tests/nutanix-ahv/proc/cpuinfo | 27 ++++
tests/nutanix-ahv/proc/self/status | 55 ++++++++
tests/nutanix-ahv/sbin/dmidecode | 123 ++++++++++++++++++
tests/nutanix-ahv/sbin/uname | 2 +
tests/nutanix-ahv/sbin/virt-what-cpuid-helper | 2 +
tests/nutanix-ahv/test.sh | 32 +++++
virt-what.in | 10 +-
virt-what.pod | 6 +
10 files changed, 286 insertions(+), 1 deletion(-)
create mode 100644 tests/nutanix-ahv/Makefile.am
create mode 100644 tests/nutanix-ahv/proc/cpuinfo
create mode 100644 tests/nutanix-ahv/proc/self/status
create mode 100755 tests/nutanix-ahv/sbin/dmidecode
create mode 100755 tests/nutanix-ahv/sbin/uname
create mode 100755 tests/nutanix-ahv/sbin/virt-what-cpuid-helper
create mode 100755 tests/nutanix-ahv/test.sh
diff --git a/configure.ac b/configure.ac
index 5e0d9c4..f246e34 100644
--- a/configure.ac
+++ b/configure.ac
@@ -51,6 +51,7 @@ tests="\
lkvm-arm \
lx86 \
lxc \
+ nutanix-ahv \
parallels-desktop \
ppc64-baremetal \
ppc64-kvm \
@@ -93,6 +94,7 @@ AC_CONFIG_FILES([Makefile
tests/lkvm-arm/Makefile
tests/lx86/Makefile
tests/lxc/Makefile
+ tests/nutanix-ahv/Makefile
tests/parallels-desktop/Makefile
tests/ppc64-baremetal/Makefile
tests/ppc64-kvm/Makefile
diff --git a/tests/nutanix-ahv/Makefile.am b/tests/nutanix-ahv/Makefile.am
new file mode 100644
index 0000000..b748df8
--- /dev/null
+++ b/tests/nutanix-ahv/Makefile.am
@@ -0,0 +1,28 @@
+# Makefile for virt-what
+# Copyright (C) 2008-2011 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+CLEANFILES = *~
+
+TESTS = test.sh
+
+EXTRA_DIST = \
+ test.sh \
+ proc/cpuinfo \
+ proc/self/status \
+ sbin/dmidecode \
+ sbin/uname \
+ sbin/virt-what-cpuid-helper
diff --git a/tests/nutanix-ahv/proc/cpuinfo b/tests/nutanix-ahv/proc/cpuinfo
new file mode 100644
index 0000000..d7a1f68
--- /dev/null
+++ b/tests/nutanix-ahv/proc/cpuinfo
@@ -0,0 +1,27 @@
+processor : 0
+vendor_id : GenuineIntel
+cpu family : 15
+model : 6
+model name : Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz
+stepping : 1
+microcode : 0x1
+cpu MHz : 2199.998
+cache size : 16384 KB
+physical id : 0
+siblings : 1
+core id : 0
+cpu cores : 1
+apicid : 0
+initial apicid : 0
+fpu : yes
+fpu_exception : yes
+cpuid level : 13
+wp : yes
+flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc nopl cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat md_clear
+bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs
+bogomips : 4399.99
+clflush size : 64
+cache_alignment : 128
+address sizes : 46 bits physical, 48 bits virtual
+power management:
+
diff --git a/tests/nutanix-ahv/proc/self/status b/tests/nutanix-ahv/proc/self/status
new file mode 100644
index 0000000..7b4eed0
--- /dev/null
+++ b/tests/nutanix-ahv/proc/self/status
@@ -0,0 +1,55 @@
+Name: cat
+Umask: 0022
+State: R (running)
+Tgid: 18508
+Ngid: 0
+Pid: 18508
+PPid: 18506
+TracerPid: 0
+Uid: 0 0 0 0
+Gid: 0 0 0 0
+FDSize: 64
+Groups: 0
+NStgid: 18508
+NSpid: 18508
+NSpgid: 18506
+NSsid: 1945
+VmPeak: 5392 kB
+VmSize: 5392 kB
+VmLck: 0 kB
+VmPin: 0 kB
+VmHWM: 760 kB
+VmRSS: 760 kB
+RssAnon: 68 kB
+RssFile: 692 kB
+RssShmem: 0 kB
+VmData: 312 kB
+VmStk: 132 kB
+VmExe: 28 kB
+VmLib: 1456 kB
+VmPTE: 48 kB
+VmSwap: 0 kB
+HugetlbPages: 0 kB
+CoreDumping: 0
+THP_enabled: 1
+Threads: 1
+SigQ: 3/7359
+SigPnd: 0000000000000000
+ShdPnd: 0000000000000000
+SigBlk: 0000000000000000
+SigIgn: 0000000000000000
+SigCgt: 0000000000000000
+CapInh: 0000000000000000
+CapPrm: 0000003fffffffff
+CapEff: 0000003fffffffff
+CapBnd: 0000003fffffffff
+CapAmb: 0000000000000000
+NoNewPrivs: 0
+Seccomp: 0
+Speculation_Store_Bypass: thread vulnerable
+Cpus_allowed: ffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff,ffffffff
+Cpus_allowed_list: 0-239
+Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
+Mems_allowed_list: 0
+voluntary_ctxt_switches: 0
+nonvoluntary_ctxt_switches: 2
diff --git a/tests/nutanix-ahv/sbin/dmidecode b/tests/nutanix-ahv/sbin/dmidecode
new file mode 100755
index 0000000..3774819
--- /dev/null
+++ b/tests/nutanix-ahv/sbin/dmidecode
@@ -0,0 +1,123 @@
+#!/bin/sh -
+cat <<'EOF'
+i# dmidecode 3.2
+Getting SMBIOS data from sysfs.
+SMBIOS 2.8 present.
+9 structures occupying 486 bytes.
+Table at 0x000F73C0.
+
+Handle 0x0000, DMI type 0, 24 bytes
+BIOS Information
+ Vendor: SeaBIOS
+ Version: 1.9.1-5.el6
+ Release Date: 04/01/2014
+ Address: 0xE8000
+ Runtime Size: 96 kB
+ ROM Size: 64 kB
+ Characteristics:
+ BIOS characteristics not supported
+ Targeted content distribution is supported
+ BIOS Revision: 0.0
+
+Handle 0x0100, DMI type 1, 27 bytes
+System Information
+ Manufacturer: Nutanix
+ Product Name: AHV
+ Version: RHEL 7.3.0 PC (i440FX + PIIX, 1996)
+ Serial Number: B913C223-EEDE-4DFC-BB43-BE1495F4388D
+ UUID: b913c223-eede-4dfc-bb43-be1495f4388d
+ Wake-up Type: Power Switch
+ SKU Number: Not Specified
+ Family: Red Hat Enterprise Linux
+
+Handle 0x0300, DMI type 3, 21 bytes
+Chassis Information
+ Manufacturer: Red Hat
+ Type: Other
+ Lock: Not Present
+ Version: RHEL 7.3.0 PC (i440FX + PIIX, 1996)
+ Serial Number: Not Specified
+ Asset Tag: Not Specified
+ Boot-up State: Safe
+ Power Supply State: Safe
+ Thermal State: Safe
+ Security Status: Unknown
+ OEM Information: 0x00000000
+ Height: Unspecified
+ Number Of Power Cords: Unspecified
+ Contained Elements: 0
+
+Handle 0x0400, DMI type 4, 42 bytes
+Processor Information
+ Socket Designation: CPU 0
+ Type: Central Processor
+ Family: Other
+ Manufacturer: Red Hat
+ ID: 61 0F 00 00 FF FB 8B 0F
+ Version: RHEL 7.3.0 PC (i440FX + PIIX, 1996)
+ Voltage: Unknown
+ External Clock: Unknown
+ Max Speed: 2000 MHz
+ Current Speed: 2000 MHz
+ Status: Populated, Enabled
+ Upgrade: Other
+ L1 Cache Handle: Not Provided
+ L2 Cache Handle: Not Provided
+ L3 Cache Handle: Not Provided
+ Serial Number: Not Specified
+ Asset Tag: Not Specified
+ Part Number: Not Specified
+ Core Count: 1
+ Core Enabled: 1
+ Thread Count: 1
+ Characteristics: None
+
+Handle 0x1000, DMI type 16, 23 bytes
+Physical Memory Array
+ Location: Other
+ Use: System Memory
+ Error Correction Type: Multi-bit ECC
+ Maximum Capacity: 2 GB
+ Error Information Handle: Not Provided
+ Number Of Devices: 1
+
+Handle 0x1100, DMI type 17, 40 bytes
+Memory Device
+ Array Handle: 0x1000
+ Error Information Handle: Not Provided
+ Total Width: Unknown
+ Data Width: Unknown
+ Size: 2048 MB
+ Form Factor: DIMM
+ Set: None
+ Locator: DIMM 0
+ Bank Locator: Not Specified
+ Type: RAM
+ Type Detail: Other
+ Speed: Unknown
+ Manufacturer: Red Hat
+ Serial Number: Not Specified
+ Asset Tag: Not Specified
+ Part Number: Not Specified
+ Rank: Unknown
+ Configured Memory Speed: Unknown
+ Minimum Voltage: Unknown
+ Maximum Voltage: Unknown
+ Configured Voltage: Unknown
+
+Handle 0x1300, DMI type 19, 31 bytes
+Memory Array Mapped Address
+ Starting Address: 0x00000000000
+ Ending Address: 0x0007FFFFFFF
+ Range Size: 2 GB
+ Physical Array Handle: 0x1000
+ Partition Width: 1
+
+Handle 0x2000, DMI type 32, 11 bytes
+System Boot Information
+ Status: No errors detected
+
+Handle 0x7F00, DMI type 127, 4 bytes
+End Of Table
+
+EOF
diff --git a/tests/nutanix-ahv/sbin/uname b/tests/nutanix-ahv/sbin/uname
new file mode 100755
index 0000000..ab0ec89
--- /dev/null
+++ b/tests/nutanix-ahv/sbin/uname
@@ -0,0 +1,2 @@
+#!/bin/sh -
+echo x86_64
diff --git a/tests/nutanix-ahv/sbin/virt-what-cpuid-helper b/tests/nutanix-ahv/sbin/virt-what-cpuid-helper
new file mode 100755
index 0000000..f52a9d7
--- /dev/null
+++ b/tests/nutanix-ahv/sbin/virt-what-cpuid-helper
@@ -0,0 +1,2 @@
+#!/bin/sh -
+echo KVMKVMKVM
diff --git a/tests/nutanix-ahv/test.sh b/tests/nutanix-ahv/test.sh
new file mode 100755
index 0000000..3d934b2
--- /dev/null
+++ b/tests/nutanix-ahv/test.sh
@@ -0,0 +1,32 @@
+# Test for Nutanix AHV
+# Copyright (C) 2019 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)"
+expected="nutanix_ahv"
+
+if [ "$output" != "$expected" ]; then
+ echo "$0: test failed because output did not match expected"
+ echo "Expected output was:"
+ echo "----------------------------------------"
+ echo "$expected"
+ echo "----------------------------------------"
+ echo "But the actual output of the program was:"
+ echo "----------------------------------------"
+ echo "$output"
+ echo "----------------------------------------"
+ exit 1
+fi
diff --git a/virt-what.in b/virt-what.in
index f685461..9eafa05 100644
--- a/virt-what.in
+++ b/virt-what.in
@@ -1,6 +1,6 @@
#!/bin/sh -
# @configure_input@
-# Copyright (C) 2008-2017 Red Hat Inc.
+# Copyright (C) 2008-2019 Red Hat Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -220,6 +220,14 @@ if echo "$dmi" | grep -q 'Vendor: Parallels'; then
skip_qemu_kvm=true
fi
+# Check for Nutanix AHV.
+# This is sufficiently different from KVM and has Viridian extensions,
+# so skip the KVM test.
+if echo "$dmi" | grep -q 'Manufacturer: Nutanix'; then
+ echo nutanix_ahv
+ skip_qemu_kvm=true
+fi
+
# Check for oVirt/RHEV.
if echo "$dmi" | grep -q 'Manufacturer: oVirt'; then
echo ovirt
diff --git a/virt-what.pod b/virt-what.pod
index 5a0bdfc..ea5cb77 100644
--- a/virt-what.pod
+++ b/virt-what.pod
@@ -177,6 +177,12 @@ is lkvm (a.k.a kvmtool).
Status: contributed by Andrew Jones
+=item B<nutanix_ahv>
+
+The guest is running inside Nutanix Acropolis Hypervisor (AHV).
+
+Status: confirmed by RWMJ.
+
=item B<openvz>
The guest appears to be running inside an OpenVZ or Virtuozzo
--
2.18.4

View File

@ -1,38 +0,0 @@
From e0443f1fc78f2a79c073dbdf4133bec41c4c0591 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 4 Oct 2019 18:30:01 +0100
Subject: [PATCH 20/25] helper: Fix KVM signature.
Thanks: Paolo Bonzini.
---
virt-what-cpuid-helper.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/virt-what-cpuid-helper.c b/virt-what-cpuid-helper.c
index 0cd4a6f..9c6cdb2 100644
--- a/virt-what-cpuid-helper.c
+++ b/virt-what-cpuid-helper.c
@@ -28,15 +28,16 @@
#if defined(__i386__) || defined(__x86_64__)
/* Known x86 hypervisor signatures. Note that if you add a new test
- * to virt-what.in you may need to update this list. The signature is
- * always 12 bytes except in the case of KVM.
+ * to virt-what.in you may need to update this list. Note the
+ * signature is always 12 bytes long, plus we add \0 to the end to
+ * make it 13 bytes.
*/
static int
-known_signature (char *sig)
+known_signature (const char *sig)
{
return
strcmp (sig, "bhyve bhyve ") == 0 ||
- strcmp (sig, "KVMKVMKVM") == 0 ||
+ memcmp (sig, "KVMKVMKVM\0\0\0", 12) == 0 ||
strcmp (sig, "LKVMLKVMLKVM") == 0 ||
strcmp (sig, "Microsoft Hv") == 0 ||
strcmp (sig, "OpenBSDVMM58") == 0 ||
--
2.18.4

View File

@ -1,27 +0,0 @@
From 71ef45e9543278e9920e449b71e0da269662ebc9 Mon Sep 17 00:00:00 2001
From: willem van de velde <williamvdvelde@gmail.com>
Date: Tue, 22 Oct 2019 11:58:01 +0100
Subject: [PATCH 21/25] Fix incorrect detection of MS Surfacebook 2 as a
virtual machine.
---
virt-what.in | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/virt-what.in b/virt-what.in
index 9eafa05..a61ce91 100644
--- a/virt-what.in
+++ b/virt-what.in
@@ -132,7 +132,8 @@ fi
# The negative check for cpuid is to distinguish this from Hyper-V
# which also has the same manufacturer string in the SM-BIOS data.
if [ "$cpuid" != "Microsoft Hv" ] &&
- echo "$dmi" | grep -q 'Manufacturer: Microsoft Corporation'; then
+ echo "$dmi" | grep -q 'Manufacturer: Microsoft Corporation' &&
+ echo "$dmi" | grep -q 'Product Name: Virtual Machine'; then
echo virtualpc
fi
--
2.18.4

View File

@ -1,267 +0,0 @@
From 8640dad5eb60eced313359e7ecea19b07d77242f Mon Sep 17 00:00:00 2001
From: Razvan Corneliu <razvan.vilt@linux360.ro>
Date: Mon, 10 May 2021 21:02:27 +0100
Subject: [PATCH 22/25] Add support for VMware ESXi on ARM
Virt-what doesn't recognize VMware VMs for AARCH64/ARM (with licensing
implications in ESXi Fling for ARM and Fusion v.Next for ARM). I've
created and attached a patch that adds both support for recognizing
ESXi and the automated tests for it.
---
configure.ac | 2 +
tests/esx-arm/Makefile.am | 30 ++++++++++
tests/esx-arm/proc/cpuinfo | 18 ++++++
.../proc/device-tree/hypervisor/compatible | 1 +
.../esx-arm/proc/device-tree/hypervisor/name | 1 +
tests/esx-arm/proc/self/status | 55 +++++++++++++++++++
tests/esx-arm/sbin/dmidecode | 2 +
tests/esx-arm/sbin/uname | 2 +
tests/esx-arm/sbin/virt-what-cpuid-helper | 2 +
tests/esx-arm/test.sh | 32 +++++++++++
virt-what.in | 4 ++
11 files changed, 149 insertions(+)
create mode 100644 tests/esx-arm/Makefile.am
create mode 100644 tests/esx-arm/proc/cpuinfo
create mode 100644 tests/esx-arm/proc/device-tree/hypervisor/compatible
create mode 100644 tests/esx-arm/proc/device-tree/hypervisor/name
create mode 100644 tests/esx-arm/proc/self/status
create mode 100755 tests/esx-arm/sbin/dmidecode
create mode 100755 tests/esx-arm/sbin/uname
create mode 100755 tests/esx-arm/sbin/virt-what-cpuid-helper
create mode 100755 tests/esx-arm/test.sh
diff --git a/configure.ac b/configure.ac
index f246e34..f9b3096 100644
--- a/configure.ac
+++ b/configure.ac
@@ -41,6 +41,7 @@ tests="\
baremetal \
bhyve \
docker \
+ esx-arm \
esx4.1 \
hyperv \
kvm \
@@ -84,6 +85,7 @@ AC_CONFIG_FILES([Makefile
tests/baremetal/Makefile
tests/bhyve/Makefile
tests/docker/Makefile
+ tests/esx-arm/Makefile
tests/esx4.1/Makefile
tests/hyperv/Makefile
tests/kvm/Makefile
diff --git a/tests/esx-arm/Makefile.am b/tests/esx-arm/Makefile.am
new file mode 100644
index 0000000..b87ec83
--- /dev/null
+++ b/tests/esx-arm/Makefile.am
@@ -0,0 +1,30 @@
+# Makefile for virt-what
+# Copyright (C) 2008-2011 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+CLEANFILES = *~
+
+TESTS = test.sh
+
+EXTRA_DIST = \
+ test.sh \
+ proc/cpuinfo \
+ proc/device-tree/hypervisor/compatible \
+ proc/device-tree/hypervisor/name \
+ proc/self/status \
+ sbin/dmidecode \
+ sbin/uname \
+ sbin/virt-what-cpuid-helper
diff --git a/tests/esx-arm/proc/cpuinfo b/tests/esx-arm/proc/cpuinfo
new file mode 100644
index 0000000..246b574
--- /dev/null
+++ b/tests/esx-arm/proc/cpuinfo
@@ -0,0 +1,18 @@
+processor : 0
+BogoMIPS : 108.00
+Features : fp asimd evtstrm crc32 cpuid
+CPU implementer : 0x41
+CPU architecture: 8
+CPU variant : 0x0
+CPU part : 0xd08
+CPU revision : 3
+
+processor : 1
+BogoMIPS : 108.00
+Features : fp asimd evtstrm crc32 cpuid
+CPU implementer : 0x41
+CPU architecture: 8
+CPU variant : 0x0
+CPU part : 0xd08
+CPU revision : 3
+
diff --git a/tests/esx-arm/proc/device-tree/hypervisor/compatible b/tests/esx-arm/proc/device-tree/hypervisor/compatible
new file mode 100644
index 0000000..0554874
--- /dev/null
+++ b/tests/esx-arm/proc/device-tree/hypervisor/compatible
@@ -0,0 +1 @@
+vmware
diff --git a/tests/esx-arm/proc/device-tree/hypervisor/name b/tests/esx-arm/proc/device-tree/hypervisor/name
new file mode 100644
index 0000000..d508e44
--- /dev/null
+++ b/tests/esx-arm/proc/device-tree/hypervisor/name
@@ -0,0 +1 @@
+hypervisor
diff --git a/tests/esx-arm/proc/self/status b/tests/esx-arm/proc/self/status
new file mode 100644
index 0000000..13dd246
--- /dev/null
+++ b/tests/esx-arm/proc/self/status
@@ -0,0 +1,55 @@
+Name: cat
+Umask: 0022
+State: R (running)
+Tgid: 292937
+Ngid: 0
+Pid: 292937
+PPid: 10956
+TracerPid: 0
+Uid: 0 0 0 0
+Gid: 0 0 0 0
+FDSize: 256
+Groups: 0
+NStgid: 292937
+NSpid: 292937
+NSpgid: 292937
+NSsid: 10956
+VmPeak: 6400 kB
+VmSize: 6400 kB
+VmLck: 0 kB
+VmPin: 0 kB
+VmHWM: 960 kB
+VmRSS: 960 kB
+RssAnon: 448 kB
+RssFile: 512 kB
+RssShmem: 0 kB
+VmData: 640 kB
+VmStk: 192 kB
+VmExe: 64 kB
+VmLib: 1600 kB
+VmPTE: 384 kB
+VmSwap: 0 kB
+HugetlbPages: 0 kB
+CoreDumping: 0
+THP_enabled: 1
+Threads: 1
+SigQ: 2/3947
+SigPnd: 0000000000000000
+ShdPnd: 0000000000000000
+SigBlk: 0000000000000000
+SigIgn: 0000000000000000
+SigCgt: 0000000000000000
+CapInh: 0000000000000000
+CapPrm: 0000003fffffffff
+CapEff: 0000003fffffffff
+CapBnd: 0000003fffffffff
+CapAmb: 0000000000000000
+NoNewPrivs: 0
+Seccomp: 0
+Speculation_Store_Bypass: vulnerable
+Cpus_allowed: 3
+Cpus_allowed_list: 0-1
+Mems_allowed: 01
+Mems_allowed_list: 0
+voluntary_ctxt_switches: 1
+nonvoluntary_ctxt_switches: 0
diff --git a/tests/esx-arm/sbin/dmidecode b/tests/esx-arm/sbin/dmidecode
new file mode 100755
index 0000000..e53c12f
--- /dev/null
+++ b/tests/esx-arm/sbin/dmidecode
@@ -0,0 +1,2 @@
+#!/bin/sh -
+exit 1
diff --git a/tests/esx-arm/sbin/uname b/tests/esx-arm/sbin/uname
new file mode 100755
index 0000000..bd33a2d
--- /dev/null
+++ b/tests/esx-arm/sbin/uname
@@ -0,0 +1,2 @@
+#!/bin/sh -
+echo aarch64
diff --git a/tests/esx-arm/sbin/virt-what-cpuid-helper b/tests/esx-arm/sbin/virt-what-cpuid-helper
new file mode 100755
index 0000000..77a6692
--- /dev/null
+++ b/tests/esx-arm/sbin/virt-what-cpuid-helper
@@ -0,0 +1,2 @@
+#!/bin/sh -
+# nothing
diff --git a/tests/esx-arm/test.sh b/tests/esx-arm/test.sh
new file mode 100755
index 0000000..344afef
--- /dev/null
+++ b/tests/esx-arm/test.sh
@@ -0,0 +1,32 @@
+# Test for ESXi on ARM
+# Copyright (C) 2008-2011 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+output="$(PATH=../..:$PATH virt-what --test-root=. 2>&1)"
+expected="vmware"
+
+if [ "$output" != "$expected" ]; then
+ echo "$0: test failed because output did not match expected"
+ echo "Expected output was:"
+ echo "----------------------------------------"
+ echo "$expected"
+ echo "----------------------------------------"
+ echo "But the actual output of the program was:"
+ echo "----------------------------------------"
+ echo "$output"
+ echo "----------------------------------------"
+ exit 1
+fi
diff --git a/virt-what.in b/virt-what.in
index a61ce91..59743c3 100644
--- a/virt-what.in
+++ b/virt-what.in
@@ -264,6 +264,10 @@ elif [ "$arch" = "arm" ] || [ "$arch" = "aarch64" ]; then
echo xen
skip_qemu_kvm=true
skip_lkvm=true
+ elif [ -d "${root}/proc/device-tree/hypervisor" ] &&
+ grep -q "vmware" "${root}/proc/device-tree/hypervisor/compatible"; then
+ echo vmware
+ skip_lkvm=true
fi
elif [ "$arch" = "ia64" ]; then
if [ -d "${root}/sys/bus/xen" -a ! -d "${root}/sys/bus/xen-backend" ]; then
--
2.18.4

View File

@ -1,48 +0,0 @@
From a24df0c780aaf74f0ed408bc55386b9f933fb7aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ville=20Skytt=C3=A4?= <ville.skytta@iki.fi>
Date: Sun, 1 Dec 2019 07:58:04 +0200
Subject: [PATCH 23/25] docker: Check for /.dockerenv too
/.dockerinit may no longer exist.
Ref https://github.com/moby/moby/issues/18355
(cherry picked from commit e2c49cda221f95cb65b1b3ac3ae15aa41d92f519)
---
tests/docker/.dockerenv | 0
tests/docker/Makefile.am | 1 +
virt-what.in | 2 +-
3 files changed, 2 insertions(+), 1 deletion(-)
create mode 100644 tests/docker/.dockerenv
diff --git a/tests/docker/.dockerenv b/tests/docker/.dockerenv
new file mode 100644
index 0000000..e69de29
diff --git a/tests/docker/Makefile.am b/tests/docker/Makefile.am
index e0ea991..e2a95d8 100644
--- a/tests/docker/Makefile.am
+++ b/tests/docker/Makefile.am
@@ -21,6 +21,7 @@ TESTS = test.sh
EXTRA_DIST = \
test.sh \
+ .dockerenv \
.dockerinit \
proc/cpuinfo \
proc/self/status \
diff --git a/virt-what.in b/virt-what.in
index 59743c3..900a05d 100644
--- a/virt-what.in
+++ b/virt-what.in
@@ -349,7 +349,7 @@ if ! "$skip_lkvm"; then
fi
# Check for Docker.
-if [ -f "${root}/.dockerinit" ]; then
+if [ -f "${root}/.dockerenv" ] || [ -f "${root}/.dockerinit" ]; then
echo docker
fi
--
2.18.4

View File

@ -1,63 +0,0 @@
From 6831ccb71a7b19c6e5cb970026cbffff39928e2b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ville=20Skytt=C3=A4?= <ville.skytta@iki.fi>
Date: Sun, 1 Dec 2019 08:21:32 +0200
Subject: [PATCH 24/25] docker: Lookup from /proc/self/cgroup too
Refs https://github.com/moby/moby/issues/18355
(cherry picked from commit 57f0c3cc6a7e631f644d67f05b002c6004bb6601)
---
tests/docker/Makefile.am | 1 +
tests/docker/proc/self/cgroup | 13 +++++++++++++
virt-what.in | 3 ++-
3 files changed, 16 insertions(+), 1 deletion(-)
create mode 100644 tests/docker/proc/self/cgroup
diff --git a/tests/docker/Makefile.am b/tests/docker/Makefile.am
index e2a95d8..401f372 100644
--- a/tests/docker/Makefile.am
+++ b/tests/docker/Makefile.am
@@ -24,6 +24,7 @@ EXTRA_DIST = \
.dockerenv \
.dockerinit \
proc/cpuinfo \
+ proc/self/cgroup \
proc/self/status \
sbin/dmidecode \
sbin/uname \
diff --git a/tests/docker/proc/self/cgroup b/tests/docker/proc/self/cgroup
new file mode 100644
index 0000000..5547637
--- /dev/null
+++ b/tests/docker/proc/self/cgroup
@@ -0,0 +1,13 @@
+12:devices:/docker/2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
+11:blkio:/docker/2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
+10:perf_event:/docker/2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
+9:pids:/docker/2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
+8:cpuset:/docker/2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
+7:rdma:/
+6:hugetlb:/docker/2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
+5:net_cls,net_prio:/docker/2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
+4:memory:/docker/2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
+3:freezer:/docker/2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
+2:cpu,cpuacct:/docker/2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
+1:name=systemd:/docker/2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
+0::/system.slice/containerd.service
diff --git a/virt-what.in b/virt-what.in
index 900a05d..6330fd0 100644
--- a/virt-what.in
+++ b/virt-what.in
@@ -349,7 +349,8 @@ if ! "$skip_lkvm"; then
fi
# Check for Docker.
-if [ -f "${root}/.dockerenv" ] || [ -f "${root}/.dockerinit" ]; then
+if [ -f "${root}/.dockerenv" ] || [ -f "${root}/.dockerinit" ] || \
+ grep -qF /docker/ "${root}/proc/self/cgroup" 2>/dev/null; then
echo docker
fi
--
2.18.4

View File

@ -1,62 +0,0 @@
From 88eb2b7fbd7e6af1cd1860c3f2023ee7b9125d37 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 13 Apr 2021 09:35:07 +0100
Subject: [PATCH 25/25] Simplify and fix invocation of cpuid.
Fixes a crash on some platforms identified by Yongkui Guo in
https://bugzilla.redhat.com/show_bug.cgi?id=1756381#c15
(cherry picked from commit 60d903fbb7653bc9754228bdab4c6933fcda1e72)
---
virt-what-cpuid-helper.c | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/virt-what-cpuid-helper.c b/virt-what-cpuid-helper.c
index 9c6cdb2..fdceb62 100644
--- a/virt-what-cpuid-helper.c
+++ b/virt-what-cpuid-helper.c
@@ -47,17 +47,25 @@ known_signature (const char *sig)
0;
}
+/* Copied from the Linux kernel definition in
+ * arch/x86/include/asm/processor.h
+ */
+static inline void
+cpuid (uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx)
+{
+ asm volatile ("cpuid"
+ : "=a" (*eax), "=b" (*ebx), "=c" (*ecx), "=d" (*edx)
+ : "0" (*eax), "2" (*ecx)
+ : "memory");
+}
+
static uint32_t
-cpuid (uint32_t eax, char *sig)
+cpuid_leaf (uint32_t eax, char *sig)
{
uint32_t *sig32 = (uint32_t *) sig;
- asm volatile (
- "xchgl %%ebx,%1; xor %%ebx,%%ebx; cpuid; xchgl %%ebx,%1"
- : "=a" (eax), "+r" (sig32[0]), "=c" (sig32[1]), "=d" (sig32[2])
- : "0" (eax));
- sig[12] = 0;
-
+ cpuid (&eax, &sig32[0], &sig32[1], &sig32[2]);
+ sig[12] = 0; /* \0-terminate the string to make string comparison possible */
return eax;
}
@@ -87,7 +95,7 @@ cpu_sig (void)
*/
for (leaf = base + 0xff00; leaf >= base; leaf -= 0x100) {
memset (sig, 0, sizeof sig);
- cpuid (leaf, sig);
+ cpuid_leaf (leaf, sig);
if (known_signature (sig)) {
puts (sig);
break;
--
2.18.4

61
SOURCES/copy-patches.sh Executable file
View File

@ -0,0 +1,61 @@
#!/bin/bash -
set -e
# Maintainer script to copy patches from the git repo to the current
# directory. It's normally only used downstream (ie. in RHEL). Use
# it like this:
# ./copy-patches.sh
project=virt-what
rhel_version=8.7
# Check we're in the right directory.
if [ ! -f $project.spec ]; then
echo "$0: run this from the directory containing '$project.spec'"
exit 1
fi
case `id -un` in
rjones) git_checkout=$HOME/d/$project-rhel-$rhel_version ;;
lacos) git_checkout=$HOME/src/v2v/$project ;;
*) git_checkout=$HOME/d/$project-rhel-$rhel_version ;;
esac
if [ ! -d $git_checkout ]; then
echo "$0: $git_checkout does not exist"
echo "This script is only for use by the maintainer when preparing a"
echo "$project release on RHEL."
exit 1
fi
# Get the base version of the project.
version=`grep '^Version:' $project.spec | awk '{print $2}'`
tag="v$version"
# Remove any existing patches.
git rm -f [0-9]*.patch ||:
rm -f [0-9]*.patch
# Get the patches.
(cd $git_checkout; rm -f [0-9]*.patch; git -c core.abbrev=9 format-patch -O/dev/null -N --submodule=diff $tag)
mv $git_checkout/[0-9]*.patch .
# Remove any not to be applied.
rm -f *NOT-FOR-RPM*.patch
# Add the patches.
git add [0-9]*.patch
# Print out the patch lines.
echo
echo "--- Copy the following text into $project.spec file"
echo
echo "# Patches."
for f in [0-9]*.patch; do
n=`echo $f | awk -F- '{print $1}'`
echo "Patch$n: $f"
done
echo
echo "--- End of text"

View File

@ -1,28 +0,0 @@
*~
*.log
*.trs
*.o
/virt-what-*.tar.gz
/.deps
/Makefile
/Makefile.in
/aclocal.m4
/autom4te.cache
/compile
/config.guess
/config.h
/config.h.in
/config.log
/config.status
/config.sub
/configure
/depcomp
/install-sh
/missing
/stamp-h1
/test-driver
/virt-what
/virt-what-cpuid-helper
/virt-what.1
/virt-what.txt

View File

@ -1,61 +1,28 @@
Name: virt-what
Version: 1.18
Release: 13%{?dist}
Version: 1.25
Release: 1%{?dist}
Summary: Detect if we are running in a virtual machine
License: GPLv2+
URL: http://people.redhat.com/~rjones/virt-what/
Source0: http://people.redhat.com/~rjones/virt-what/files/%{name}-%{version}.tar.gz
# Some of the patches below apply to .gitignore, but that file was not
# included in the tarball before v1.20. This is the version from
# v1.18 upstream allowing patching to go ahead.
Source1: gitignore
# Maintainer script which helps with handling patches.
Source1: copy-patches.sh
# Patches from upstream since 1.18 was released.
# NB: These patches are also stored in this upstream branch:
# http://git.annexia.org/?p=virt-what.git;a=shortlog;h=refs/heads/rhel-8.6
Patch0001: 0001-Missing-have_cpuinfo-check.patch
Patch0002: 0002-Remove-bashisms.patch
Patch0003: 0003-As-xen-pv-guest-can-access-cpuid-from-Intel-CPUs-sta.patch
Patch0004: 0004-Recognize-ppc64le-little-endian-virtualization-RHBZ-.patch
Patch0005: 0005-Determine-architecture-via-uname-m.patch
Patch0006: 0006-Allow-using-sysctl-for-example-when-proc-isn-t-avail.patch
Patch0007: 0007-Replace-with-since-the-former-is-a-bash-ism.patch
# AWS support:
Patch0008: 0008-aws-Detect-AWS-from-dmidecode-information.patch
Patch0009: 0009-tests-Fix-tests-when-run-on-AWS.patch
Patch0010: 0010-aws-Add-regression-test-for-AWS-on-KVM-on-x86_64-arc.patch
Patch0011: 0011-aws-Add-regression-test-for-AWS-on-baremetal-on-x86_.patch
Patch0012: 0012-aws-Add-regression-test-for-AWS-on-Xen-on-x86_64-arc.patch
Patch0013: 0013-aws-Add-regression-test-for-AWS-on-KVM-on-ARM-archit.patch
# Refactor build and tests.
Patch0014: 0014-build-Remove-files-on-make-clean.patch
Patch0015: 0015-Arrange-tests-in-subdirectories.patch
Patch0016: 0016-build-Add-.gitignore-to-tarball.patch
Patch0017: 0017-maintainer-Add-rules-for-maintainers.patch
# Support for Nutanix AHV (RHBZ#1756381).
Patch0018: 0018-Fix-virt-what-cpuid-helper.patch
Patch0019: 0019-Add-support-for-Nutanix-Acropolis-Hypervisor-AHV-RHB.patch
Patch0020: 0020-helper-Fix-KVM-signature.patch
# Support for virtualized MS Surfacebook 2.
Patch0021: 0021-Fix-incorrect-detection-of-MS-Surfacebook-2-as-a-vir.patch
# Support for VMware on aarch64 (RHBZ#1959154).
Patch0022: 0022-Add-support-for-VMware-ESXi-on-ARM.patch
# Support for Docker (RHBZ#2000834).
Patch0023: 0023-docker-Check-for-.dockerenv-too.patch
Patch0024: 0024-docker-Lookup-from-proc-self-cgroup-too.patch
# Patches are maintained in the following repository:
# http://git.annexia.org/?p=virt-what.git;a=shortlog;h=refs/heads/rhel-8.7
# Fix crash on non-KVM platforms through incorrect use of CPUID in
# patch 0018 (https://bugzilla.redhat.com/show_bug.cgi?id=1756381#c15).
Patch0025: 0025-Simplify-and-fix-invocation-of-cpuid.patch
# Patches.
#(no patches)
# Patches touch Makefile.am:
BuildRequires: autoconf, automake
BuildRequires: make
BuildRequires: git
BuildRequires: autoconf, automake, libtool
# This is provided by the build root, but we make it explicit
# anyway in case this was dropped from the build root in future.
BuildRequires: gcc
BuildRequires: /usr/bin/pod2man
# Required at build time in order to do 'make check' (for getopt).
@ -86,70 +53,63 @@ know about or can't detect.
Current types of virtualization detected:
- aws Amazon Web Services
- bhyve FreeBSD hypervisor
- docker Docker container
- hyperv Microsoft Hyper-V
- ibm_power-kvm
IBM POWER KVM
- ibm_power-lpar_shared
- alibaba_cloud Alibaba cloud
- alibaba_cloud-ebm
- aws Amazon Web Services
- bhyve FreeBSD hypervisor
- docker Docker container
- google_cloud Google cloud
- hyperv Microsoft Hyper-V
- ibm_power-kvm IBM POWER KVM
- ibm_power-lpar_shared IBM POWER LPAR (hardware partition)
- ibm_power-lpar_dedicated
IBM POWER LPAR (hardware partition)
- ibm_systemz-*
IBM SystemZ Direct / LPAR / z/VM / KVM
- ldoms Oracle VM Server for SPARC Logical Domains
- linux_vserver
Linux VServer container
- lxc Linux LXC container
- kvm Linux Kernel Virtual Machine (KVM)
- lkvm LKVM / kvmtool
- openvz OpenVZ or Virtuozzo
- ovirt oVirt node
- parallels Parallels Virtual Platform
- powervm_lx86 IBM PowerVM Lx86 Linux/x86 emulator
- qemu QEMU (unaccelerated)
- rhev Red Hat Enterprise Virtualization
- uml User-Mode Linux (UML)
- virtage Hitachi Virtualization Manager (HVM) Virtage LPAR
- virtualbox VirtualBox
- virtualpc Microsoft VirtualPC
- vmm vmm OpenBSD hypervisor
- vmware VMware
- xen Xen
- xen-dom0 Xen dom0 (privileged domain)
- xen-domU Xen domU (paravirtualized guest domain)
- xen-hvm Xen guest fully virtualized (HVM)
- ibm_systemz-* IBM SystemZ Direct / LPAR / z/VM / KVM
- illumos-lx Illumos with Linux syscall emulation
- ldoms Oracle VM Server for SPARC Logical Domains
- linux_vserver Linux VServer container
- lxc Linux LXC container
- kvm Linux Kernel Virtual Machine (KVM)
- lkvm LKVM / kvmtool
- nutanix_ahv Nutanix Acropolis Hypervisor (AHV)
- openvz OpenVZ or Virtuozzo
- ovirt oVirt node
- parallels Parallels Virtual Platform
- podman Podman container
- powervm_lx86 IBM PowerVM Lx86 Linux/x86 emulator
- qemu QEMU (unaccelerated)
- redhat Red Hat hypervisor
- rhev Red Hat Enterprise Virtualization
- uml User-Mode Linux (UML)
- virtage Hitachi Virtualization Manager (HVM) Virtage LPAR
- virtualbox VirtualBox
- virtualpc Microsoft VirtualPC
- vmm vmm OpenBSD hypervisor
- vmware VMware
- xen Xen
- xen-dom0 Xen dom0 (privileged domain)
- xen-domU Xen domU (paravirtualized guest domain)
- xen-hvm Xen guest fully virtualized (HVM)
%prep
# We can go back to autosetup once we rebase to >= v1.20 which
# includes the .gitignore file in the tarball.
#autosetup -S git
# But until then ...
%setup -q -n %{name}-%{version}
cp %{SOURCE1} .gitignore
git init
git config user.email "noone@example.com"
git config user.name "no one"
git add .
git commit -a -q -m "%{version} baseline"
git am %{patches} </dev/null
%autosetup -S git
# Always rebuild upstream autotools files.
autoreconf -i
%build
# Patches touch Makefile.am:
autoreconf -i
%configure
make
%install
make install DESTDIR=$RPM_BUILD_ROOT
%make_install
%check
if ! make check ; then
cat test-suite.log
if ! make -k check ; then
find -name test-suite.log -exec cat {} \;
exit 1
fi
@ -161,6 +121,15 @@ fi
%changelog
* Wed Aug 17 2022 Richard W.M. Jones <rjones@redhat.com> - 1.25-1
- Rebase to 1.25
resolves: rhbz#2118195
* Tue Apr 19 2022 Richard W.M. Jones <rjones@redhat.com> - 1.18-14
- Add guest detection for RHEL hypervisors
resolves: rhbz#2076628
- Update patches to 1.22
* Mon Sep 06 2021 Richard W.M. Jones <rjones@redhat.com> - 1.18-13
- Support for Docker
resolves: rhbz#2000834