Richard W.M. Jones [Tue, 13 Apr 2021 08:35:07 +0000 (09:35 +0100)]
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
Jordan Webb [Mon, 13 Apr 2020 21:41:30 +0000 (21:41 +0000)]
Add podman support
Ville Skyttä [Sun, 1 Dec 2019 06:21:32 +0000 (08:21 +0200)]
docker: Lookup from /proc/self/cgroup too
Refs https://github.com/moby/moby/issues/18355
Ville Skyttä [Sun, 1 Dec 2019 05:58:04 +0000 (07:58 +0200)]
docker: Check for /.dockerenv too
/.dockerinit may no longer exist.
Ref https://github.com/moby/moby/issues/18355
willem van de velde [Tue, 22 Oct 2019 10:58:01 +0000 (11:58 +0100)]
Fix incorrect detection of MS Surfacebook 2 as a virtual machine.
Richard W.M. Jones [Fri, 4 Oct 2019 17:30:01 +0000 (18:30 +0100)]
helper: Fix KVM signature.
Thanks: Paolo Bonzini.
Richard W.M. Jones [Fri, 4 Oct 2019 13:25:55 +0000 (16:25 +0300)]
Add support for Nutanix Acropolis Hypervisor (AHV) (RHBZ#1756381).
Thanks: Cristian Seres for providing access to a guest.
Richard W.M. Jones [Fri, 4 Oct 2019 12:57:42 +0000 (15:57 +0300)]
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.
Richard W.M. Jones [Thu, 3 Oct 2019 09:21:12 +0000 (10:21 +0100)]
Version 1.20.
Richard W.M. Jones [Thu, 3 Oct 2019 09:13:43 +0000 (10:13 +0100)]
maintainer: Add rules for maintainers.
Adds:
make maintainer-check-extra-dist
make maintainer-commit
make maintainer-tag
Richard W.M. Jones [Thu, 3 Oct 2019 09:16:08 +0000 (10:16 +0100)]
build: Add .gitignore to tarball.
Mainly to keep maintainer-check-extra-dist happy.
Richard W.M. Jones [Thu, 3 Oct 2019 08:53:49 +0000 (09:53 +0100)]
Arrange tests in subdirectories.
This simplifies and isolates each test.
Richard W.M. Jones [Thu, 3 Oct 2019 08:08:19 +0000 (09:08 +0100)]
build: Remove *~ files on make clean.
Richard W.M. Jones [Wed, 31 Oct 2018 15:23:45 +0000 (15:23 +0000)]
aws: Add regression test for AWS on KVM on ARM architecture.
Richard W.M. Jones [Wed, 31 Oct 2018 19:04:22 +0000 (19:04 +0000)]
Version 1.19.
Richard W.M. Jones [Wed, 31 Oct 2018 15:23:45 +0000 (15:23 +0000)]
aws: Add regression test for AWS on Xen on x86_64 architecture.
Richard W.M. Jones [Wed, 31 Oct 2018 15:43:20 +0000 (15:43 +0000)]
aws: Add regression test for AWS on baremetal on x86_64 architecture.
Richard W.M. Jones [Wed, 31 Oct 2018 15:23:45 +0000 (15:23 +0000)]
aws: Add regression test for AWS on KVM on x86_64 architecture.
Richard W.M. Jones [Wed, 31 Oct 2018 15:35:34 +0000 (15:35 +0000)]
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.
Richard W.M. Jones [Wed, 31 Oct 2018 15:04:24 +0000 (15:04 +0000)]
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.
Richard W.M. Jones [Tue, 28 Aug 2018 17:32:41 +0000 (18:32 +0100)]
Replace == with = since the former is a bash-ism.
Thanks: Eric Blake.
Fixes commit
d7fd8a7843030d2b1719353edfcd49dba3000122.
Jasper Lievisse Adriaanse [Wed, 25 Apr 2018 14:41:32 +0000 (16:41 +0200)]
Allow using sysctl, for example when /proc isn't available
Guido Günther [Sat, 27 Jan 2018 12:11:36 +0000 (13:11 +0100)]
Determine architecture via 'uname -m'
'uname -p' only gives unknown on x86_64, i386, arm6l (rpi) and aarch64
(scaleways).
Richard W.M. Jones [Tue, 17 Oct 2017 13:47:09 +0000 (14:47 +0100)]
Recognize ppc64le (little endian) virtualization (RHBZ#1147876).
Tested by Laurent Vivier, see:
https://bugzilla.redhat.com/show_bug.cgi?id=1147876#c35 & ff.
xiliang [Sat, 17 Jun 2017 16:33:28 +0000 (00:33 +0800)]
As xen pv guest can access cpuid from Intel CPUs started IvyBridge onwards have CPUID Faulting, added one more check in virt-what.
Guido Günther [Fri, 4 Aug 2017 15:02:08 +0000 (12:02 -0300)]
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
Jasper Lievisse Adriaanse [Thu, 10 Aug 2017 07:44:01 +0000 (08:44 +0100)]
Missing have_cpuinfo check.
Richard W.M. Jones [Mon, 31 Jul 2017 14:35:11 +0000 (15:35 +0100)]
Version 1.18.
Richard W.M. Jones [Mon, 31 Jul 2017 14:34:08 +0000 (15:34 +0100)]
Richard W.M. Jones [Mon, 31 Jul 2017 14:28:45 +0000 (15:28 +0100)]
Version 1.17.
Richard W.M. Jones [Mon, 31 Jul 2017 14:19:52 +0000 (15:19 +0100)]
ppc64: Test ${root}/proc/device-tree/hypervisor instead of real file.
Fixes commit
50153230d19401fe47fcfd19d7ca0a2623c1ff09.
Richard W.M. Jones [Mon, 31 Jul 2017 14:04:28 +0000 (15:04 +0100)]
tests: Fix ldoms test so it doesn't test the host.
Fixes commit
dc0c2972e178a6de9ee87501acca54447ea9c699.
Richard W.M. Jones [Mon, 31 Jul 2017 13:32:51 +0000 (14:32 +0100)]
Document ‘aws’ meaning Amazon Web Services cloud guest.
Updates commit
dc32228184622b28f412f527c0f353347db029b8.
Richard W.M. Jones [Mon, 31 Jul 2017 13:19:46 +0000 (14:19 +0100)]
Fix EXTRA_DIST to match actual contents of tests directory.
Richard W.M. Jones [Mon, 31 Jul 2017 13:14:06 +0000 (14:14 +0100)]
Version 1.16
Darren Kenny [Tue, 4 Jul 2017 07:26:01 +0000 (08:26 +0100)]
Add LDoms Support.
The current version of virt-what does not support discovery of any
Logical Domains (LDoms) variants. This patch adds that support.
Orabug:
26106813
Signed-off-by: Darren Kenny <darren.kenny@oracle.com>
Reviewed-By: Liam Merwick <liam.merwick@oracle.com>
Reviewed-By: Rashmi Narasimhan <rashmi.narasimhan@oracle.com>
Qi Guo [Flos] [Wed, 19 Jul 2017 15:39:29 +0000 (16:39 +0100)]
Update virt-what to detect AWS via dmidecode data.
Jasper Lievisse Adriaanse [Sat, 1 Jul 2017 11:12:46 +0000 (13:12 +0200)]
virt-what: recognize OpenBSD vmm
Hi,
Please find attached a patch for virt-what to recognize the OpenBSD VMM
hypervisor.
For more information on vmm, please refer to:
- http://man.openbsd.org/vmm.4
- https://www.openbsd.org/papers/asiabsdcon2017-vmm-slides.pdf
>From
837390b5afbb9253a62b15208d6fb4cbbbecabf1 Mon Sep 17 00:00:00 2001
From: Jasper Lievisse Adriaanse <j@jasper.la>
Date: Sat, 17 Jun 2017 21:17:39 +0200
Subject: [PATCH] vmm detection (OpenBSD hypervisor)
Daniel P. Berrange [Tue, 18 Jul 2017 12:45:09 +0000 (13:45 +0100)]
Update to detect QEMU via 'TCGTCGTCGTCG' CPUID
QEMU >= 2.10 will start reporting the string "TCGTCGTCGTCG"
for CPUID queries when running under TCG only (KVM signature
is unchanged)
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Thomas Huth [Tue, 4 Jul 2017 14:20:40 +0000 (16:20 +0200)]
Add support for KVM on System Z
KVM on System Z can be discovered in the same way as z/VM, by
looking at the "VM* Control Program" lines in /proc/sysinfo.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Mark Huth [Wed, 5 Jul 2017 11:11:32 +0000 (21:11 +1000)]
Export internal PATH variable (RHBZ#1467878).
- Fixes virt-what failing if it's started without an environment, eg:
$ env -i /sbin/virt-what
... or with python subprocess.Popen, eg:
p = subprocess.Popen('/sbin/virt-what', shell=False, ... , env={})
Thomas Huth [Thu, 29 Jun 2017 10:27:42 +0000 (11:27 +0100)]
Detect KVM property when running on POWER (RHBZ#1455676).
QEMU on ppc64 adds an additional property in the device tree if
running with KVM, so you could check that property for the string
"linux,kvm" to see if KVM is enabled:
0000000: 6c69 6e75 782c 6b76 6d00 linux,kvm.
Richard W.M. Jones [Thu, 29 Jun 2017 10:22:21 +0000 (11:22 +0100)]
Revert "Print 'qemu' fact when running in qemu environment on POWER 9 (RHBZ#1455676)."
This reverts commit
15314ad0a6e3764f070b60f6df02a2f881b09fce.
Richard W.M. Jones [Thu, 29 Jun 2017 09:07:38 +0000 (10:07 +0100)]
Print 'qemu' fact when running in qemu environment on POWER 9 (RHBZ#1455676).
Thanks Nageswara R. Sastry
Richard W.M. Jones [Mon, 10 Oct 2016 14:15:41 +0000 (15:15 +0100)]
Add documentation for bhyve.
Leonardo Brondani Schenkel [Sat, 17 Sep 2016 12:59:52 +0000 (12:59 +0000)]
Add detection of bhyve (FreeBSD hypervisor)
Richard W.M. Jones [Mon, 22 Aug 2016 11:30:25 +0000 (12:30 +0100)]
Add detection of Red Hat Enterprise Virtualization hypervisor (RHBZ#1249438).
Thanks: Xianghua Chen
Richard W.M. Jones [Mon, 20 Jun 2016 12:14:53 +0000 (13:14 +0100)]
Update the previous commit to use <system>-<virt> standard for facts.
Also I renamed ppc64 to power, since that is the official IBM name.
Adrian Likins [Mon, 20 Jun 2016 11:57:27 +0000 (12:57 +0100)]
Add support for detecting ppc64 LPAR as virt guests.
https://bugzilla.redhat.com/show_bug.cgi?id=1072524#c13
Andrew Jones [Tue, 27 Oct 2015 17:16:04 +0000 (18:16 +0100)]
qemu/kvm: dmidecode: look for 'KVM'
We can check the product name for 'KVM' to determine if we're
accelerated. This only works for arm/aarch64 targets boot with
AAVMF and on RHEL x86 targets (which already have KVM in the cpuid
leaf), but it doesn't hurt to try on all.
Andrew Jones [Tue, 27 Oct 2015 17:16:03 +0000 (18:16 +0100)]
qemu/kvm: try dmidecode on all targets
Looking at "$dmi" on targets that don't support dmidecode is
harmless. Furthermore it works, not only for arm targets, but
also pc, so move it out of the 'if arm' block.
Andrew Jones [Tue, 27 Oct 2015 17:16:02 +0000 (18:16 +0100)]
trivial: virt-what.in doesn't use tabs
Richard W.M. Jones [Mon, 3 Aug 2015 11:23:13 +0000 (12:23 +0100)]
Add oVirt (RHBZ#1249438).
Andrew Jones [Tue, 22 Sep 2015 16:29:08 +0000 (18:29 +0200)]
trivial: comment fixup
dmidecode does now exist on non-PC architectures.
Andrew Jones [Tue, 22 Sep 2015 13:54:55 +0000 (15:54 +0200)]
Add QEMU/KVM detection for ACPI-boot ARM
Detect QEMU/KVM on ARM guests that have been boot with ACPI, i.e.
without device tree. When boot with ACPI SMBIOS is populated, so we
can use dmidecode.
Signed-off-by: Andrew Jones <drjones@redhat.com>
Richard W.M. Jones [Mon, 3 Aug 2015 11:23:05 +0000 (12:23 +0100)]
Update copyright years.
Richard W.M. Jones [Tue, 21 Apr 2015 11:10:44 +0000 (12:10 +0100)]
Version 1.15
Richard W.M. Jones [Tue, 21 Apr 2015 11:12:45 +0000 (12:12 +0100)]
xen-arm: Fix path in EXTRA_DIST.
Andrew Jones [Fri, 27 Mar 2015 20:19:00 +0000 (21:19 +0100)]
Add ARM support
Currently only detects LKVM, QEMU/KVM, and Xen. Also only works if
the guest is booted with DT (which is the only way that currently
exists).
Signed-off-by: Andrew Jones <drjones@redhat.com>
Andrew Jones [Fri, 27 Mar 2015 20:18:59 +0000 (21:18 +0100)]
Add lkvm detection
Signed-off-by: Andrew Jones <drjones@redhat.com>
Richard W.M. Jones [Tue, 16 Sep 2014 18:02:18 +0000 (19:02 +0100)]
Add space before parens in function defns for readability.
A. Gordon [Mon, 15 Sep 2014 19:51:50 +0000 (15:51 -0400)]
build: use portable Makefile variables
* Makefile.am: use '$?' instead of '$<'
$< in a non-inference rule is a GNU-make extension, which fails with
BSD make.
Assaf Gordon [Mon, 15 Sep 2014 19:34:06 +0000 (19:34 +0000)]
virt-what.in: make option processing portable
Replace linux-specific 'getopt' usage with manual option parsing.
Because the used option are version simple (help/version) and the only
additional option is undocumented (--test-root), it's easy remove the
'getopt' usage, and make this script portable to BSD systems.
Assaf Gordon [Mon, 15 Sep 2014 19:15:19 +0000 (19:15 +0000)]
virt-what.in: verify files exists before grepping them
Don't grep linux-specific files (e.g. /proc/cpuinfo) unless they exist.
This avoids extraneous errors on BSD/Hurd systems which don't have these
files.
Assaf Gordon [Mon, 15 Sep 2014 19:08:20 +0000 (19:08 +0000)]
virt-what.in: warn about missing cpuid-virt helper program
Try to find the binary program on the $PATH, and give informative error
message if it wasn't found.
Assaf Gordon [Mon, 15 Sep 2014 18:58:19 +0000 (18:58 +0000)]
virt-what.in: get effective uid in a portable way
$EUID is bash-specific. Use the POSIX-compatible 'id -u' instead.
A. Gordon [Mon, 15 Sep 2014 18:48:23 +0000 (14:48 -0400)]
virt-what.in: remove bash-ism
Use '/bin/sh' instead of '/bin/bash', with POSIX-compatible function
definitions.
Charles Nguyen [Sun, 22 Jun 2014 04:43:05 +0000 (23:43 -0500)]
Added documentation for Docker tests
Charles Nguyen [Sun, 22 Jun 2014 03:27:51 +0000 (22:27 -0500)]
Added check and test routines for Docker
Richard W.M. Jones [Tue, 20 May 2014 09:50:39 +0000 (10:50 +0100)]
Fix spelling mistake in the man page (RHBZ#1099289).
Richard W.M. Jones [Tue, 7 Jan 2014 12:37:30 +0000 (12:37 +0000)]
Version 1.14.
Richard W.M. Jones [Thu, 12 Dec 2013 08:47:37 +0000 (08:47 +0000)]
Fix various typos and mistakes in comments.
(Thanks Robert P. J. Day)
Richard W.M. Jones [Mon, 28 Oct 2013 11:09:24 +0000 (11:09 +0000)]
xen: Don't emit warning message if /proc/xen/capabilities file does not exist.
On Amazon EC2:
xen
grep: /proc/xen/capabilities: No such file or directory
xen-domU
The warning is harmless but should not be printed.
Thanks: Can Zhang for testing.
nodata [Mon, 2 Sep 2013 15:59:32 +0000 (16:59 +0100)]
Detect new Xen VMs (RHBZ#973663).
Elan Ruusamäe [Mon, 2 Sep 2013 14:24:11 +0000 (15:24 +0100)]
Differentiate between vserver host and guest.
RWMJ: Update documentation and tests.
Richard W.M. Jones [Mon, 29 Jul 2013 14:21:05 +0000 (15:21 +0100)]
Version 1.13.
Richard W.M. Jones [Mon, 29 Jul 2013 14:20:52 +0000 (15:20 +0100)]
Ignore automake parallel-test files.
Richard W.M. Jones [Wed, 17 Apr 2013 19:19:16 +0000 (20:19 +0100)]
Add lxc to virt-what man page.
Marc Fournier [Tue, 16 Apr 2013 20:20:32 +0000 (22:20 +0200)]
Be consistent with variable quoting and braces
Marc Fournier [Tue, 16 Apr 2013 20:20:31 +0000 (22:20 +0200)]
Remove reference to /sbin/id from Makefile
This was left out from
8aa72773.
Marc Fournier [Tue, 16 Apr 2013 20:20:30 +0000 (22:20 +0200)]
Add detection for LXC + tests
Todd Zullinger [Tue, 2 Apr 2013 15:16:25 +0000 (11:16 -0400)]
Direct output from fail() to stderr
This allows callers to more easily differentiate valid output from
errors. A recent example is facter. When calling virt-what for its
virtual fact, it gets 'virt-what: this script must be run as root' as
the fact value when run as non-root:
$ facter | grep ^virtual
virtual => virt-what: this script must be run as root
This is mildly related to RHBZ #719611¹.
¹ https://bugzilla.redhat.com/show_bug.cgi?id=719611
Masaki Kimura [Tue, 18 Sep 2012 07:56:52 +0000 (08:56 +0100)]
Change dmidecode detection of Hitachi Virtage.
Hitachi plans to change dmidecode output in the future release of
Virtage. By this change, some of Virtage models will not output "HVM"
before LPAR in "Product Name" field, which current virt-what code uses
to detect Virtage. Therefore we need to change Virtage check routine.
Sami Kerola [Thu, 19 Jul 2012 06:54:29 +0000 (08:54 +0200)]
Update GNU license FSF address
The file is copied as is from GNU web site.
Reference: http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
Reference: http://lists.gnu.org/archive/html/freefont-announce/2005-04/msg00001.html
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Sami Kerola [Thu, 19 Jul 2012 06:29:44 +0000 (08:29 +0200)]
Retire private id executables
The main script is setting PATH to use id executable from rather
strange directory. That allowed checks to run without root
privilege. This change will make detection whether test run is
been requested more universal, and to work without super setting
id command.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
RWMJ:
- Use -ne instead of != to compare integers.
Sami Kerola [Wed, 18 Jul 2012 19:27:42 +0000 (21:27 +0200)]
Disallow use of unset variables
Use of unset variable should be considered as bug, which means there
has to be sensible defaults. For $skip_qemu_kvm the default, or later
setting, is a binary named 'true' or 'false' which is executed at it
clause.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Sami Kerola [Wed, 18 Jul 2012 19:13:29 +0000 (21:13 +0200)]
Remove bash backtick command substitution
The $(command) is more flexible as it allows nesting and easier to
read, than `command` notation.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Sami Kerola [Wed, 18 Jul 2012 19:03:08 +0000 (21:03 +0200)]
man: detect with autotools if pod2man is present
When pod2man is not present build will skip the manual. Earlier the
condition caused make error, and empty manual page.
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
RWMJ:
- Generate virt-what.txt conditionally too (uses pod2text).
Richard W.M. Jones [Fri, 25 May 2012 19:47:22 +0000 (20:47 +0100)]
doc: Add note about use of this tool for system tuning.
Richard W.M. Jones [Sat, 17 Mar 2012 13:23:29 +0000 (13:23 +0000)]
Version 1.12.
Richard W.M. Jones [Sat, 17 Mar 2012 10:32:39 +0000 (10:32 +0000)]
Preserve %ebx across CPUID when using PIE (thanks Faustus, Anthony Basile from Gentoo).
PIE on i686 uses %ebx as a base register. Don't clobber it across the
CPUID instruction.
https://bugs.gentoo.org/show_bug.cgi?id=341271
https://bugzilla.redhat.com/show_bug.cgi?id=804282
Richard W.M. Jones [Fri, 27 May 2011 11:28:28 +0000 (12:28 +0100)]
IA64 Xen HVM should print 'xen-hvm' not 'xen-domU'.
This updates commit
3ea952163f0c28cd88f8473bb015df892c4247bf.
Richard W.M. Jones [Fri, 27 May 2011 11:17:50 +0000 (12:17 +0100)]
Version 1.11.
Richard W.M. Jones [Thu, 26 May 2011 12:24:56 +0000 (13:24 +0100)]
Add regression test for RHEL 5.7beta Xen HVM guest on IA64 architecture.
See also:
https://bugzilla.redhat.com/show_bug.cgi?id=707508
Thanks Alexander Todorov for access to the hardware.
Richard W.M. Jones [Thu, 26 May 2011 14:40:59 +0000 (15:40 +0100)]
Add IA64-specific tests for virtualization (RHBZ#707508).
Xen IA64 HVM does not provide a simple way to detect the
hypervisor.
If we are lucky and PV-on-HVM drivers are installed and loaded,
then there will be a /sys/bus/xen directory.
Otherwise we add a timing attack to see if we can detect generic
virtualization. Since this is a big hack, it is only enabled on IA64
and only used when all other methods of detection have failed.
This commit also adds `uname -p` to all tests (enabling arch detection
so we only run the above tests on IA64).
Richard W.M. Jones [Wed, 25 May 2011 10:26:06 +0000 (11:26 +0100)]
Version 1.10.
Richard W.M. Jones [Wed, 25 May 2011 10:04:07 +0000 (11:04 +0100)]
Add regression test for kvm with explicit -cpu core2duo option.
Richard W.M. Jones [Wed, 25 May 2011 10:13:50 +0000 (11:13 +0100)]
Fix for KVM with explicit -cpu model parameter.
Richard W.M. Jones [Wed, 25 May 2011 10:04:28 +0000 (11:04 +0100)]
Use $(TESTS) in $(EXTRA_DIST) instead of duplicating list.
This is just rearrangement of the file.
Richard W.M. Jones [Thu, 21 Apr 2011 08:49:36 +0000 (09:49 +0100)]
Add a regression test for IBM PowerVM Lx86 emulator (thanks Yufang Zhang).
Data was collected by RWMJ from IBM eServer BladeCenter JS12 server,
running a PowerVM Lx86 Virtual x86 Environment (VxE) guest.