Add regression test for kvm with explicit -cpu core2duo option.
[virt-what.git] / virt-what.pod
index f2f1a3f..4304297 100644 (file)
@@ -27,9 +27,38 @@ don't know about or cannot detect.
 
 =item B<hyperv>
 
-This is Hyper-V.
+This is Microsoft Hyper-V hypervisor.
 
-Status: from MSDN description, not tested.
+Status: confirmed by RWMJ
+
+=item B<ibm_systemz>
+
+This is an IBM SystemZ (or other S/390) hardware partitioning system.
+Additional facts listed below may also be printed.
+
+=item B<ibm_systemz-direct>
+
+This is Linux running directly on a IBM SystemZ hardware partitioning
+system.
+
+This is expected to be a highly unusual configuration - if
+you see this result you should treat it with suspicion.
+
+Status: not confirmed
+
+=item B<ibm_systemz-lpar>
+
+This is Linux running directly on an LPAR on an IBM SystemZ
+hardware partitioning system.
+
+Status: not confirmed
+
+=item B<ibm_systemz-zvm>
+
+This is a z/VM guest running in an LPAR on an IBM SystemZ
+hardware partitioning system.
+
+Status: confirmed by RWMJ using a Fedora guest running in z/VM
 
 =item B<linux_vserver>
 
@@ -39,7 +68,12 @@ Status: contributed by Barış Metin
 
 =item B<kvm>
 
-This is KVM.
+This guest is running on the KVM hypervisor using hardware
+acceleration.
+
+Note that if the hypervisor is using software acceleration
+you should I<not> see this, but should see the C<qemu> fact
+instead.
 
 Status: confirmed by RWMJ.
 
@@ -50,15 +84,23 @@ container.
 
 Status: contributed by Evgeniy Sokolov
 
+=item B<parallels>
+
+The guest is running inside Parallels Virtual Platform
+(Parallels Desktop, Parallels Server).
+
+Status: contributed by Justin Clift
+
 =item B<powervm_lx86>
 
 The guest is running inside IBM PowerVM Lx86 Linux/x86 emulator.
 
-Status: data supplied by Jeffrey Scheel, not confirmed
+Status: data originally supplied by Jeffrey Scheel, confimed by
+Yufang Zhang and RWMJ
 
 =item B<qemu>
 
-This is QEMU using software emulation.
+This is QEMU hypervisor using software emulation.
 
 Note that for KVM (hardware accelerated) guests you should I<not> see
 this.
@@ -73,7 +115,8 @@ Status: contributed by Laurent Léonard
 
 =item B<virtage>
 
-This is Hitachi Virtualization Manager (HVM) Virtage logical partitioning.
+This is Hitachi Virtualization Manager (HVM) Virtage
+hardware partitioning system.
 
 Status: data supplied by Bhavna Sarathy, not confirmed
 
@@ -91,13 +134,13 @@ Status: not confirmed
 
 =item B<vmware>
 
-The guest appears to be running on VMware.
+The guest appears to be running on VMware hypervisor.
 
 Status: confirmed by RWMJ
 
 =item B<xen>
 
-The guest appears to be running on Xen.
+The guest appears to be running on Xen hypervisor.
 
 Status: confirmed by RWMJ
 
@@ -119,15 +162,41 @@ This is a Xen guest fully virtualized (HVM).
 
 Status: confirmed by RWMJ
 
-=item B<zvm>
+=back
 
-This is a z/VM guest running on an IBM SystemZ mainframe.
+=head1 EXIT STATUS
 
-Status: confirmed by RWMJ using a Fedora guest running in z/VM.  Not
-tested whether this also works for Linux installed directly in an
-LPAR.
+Programs that use or wrap C<virt-what> should check that the exit
+status is 0 before they attempt to parse the output of the command.
 
-=back
+A non-zero exit status indicates some error, for example, an
+unrecognized command line argument.  If the exit status is non-zero
+then the output "facts" (if any were printed) cannot be guaranteed and
+should be ignored.
+
+The exit status does I<not> have anything to do with whether the
+program is running on baremetal or under virtualization, nor with
+whether C<virt-what> managed detection "correctly" (which is basically
+unknowable given the large variety of virtualization systems out there
+and that some systems deliberately emulate others).
+
+=head1 RUNNING VIRT-WHAT FROM OTHER PROGRAMS
+
+C<virt-what> is designed so that you can easily run it from
+other programs or wrap it up in a library.
+
+Your program should check the exit status (see the section above).
+
+Some programming languages (notably Python: issue 1652) erroneously
+mask the C<SIGPIPE> signal and do not restore it when executing
+subprocesses.  C<virt-what> is a shell script and some shell commands
+do not work correctly when you do this.  You may see warnings from
+C<virt-what> similar to this:
+
+ echo: write error: Broken pipe
+
+The solution is to set the C<SIGPIPE> signal handler back to C<SIG_DFL>
+before running C<virt-what>.
 
 =head1 IMPORTANT NOTE