[systemd-commits] man/systemd.unit.xml src/shared

Zbigniew Jędrzejewski-Szmek zbyszek at kemper.freedesktop.org
Fri Jul 18 06:33:52 PDT 2014


 man/systemd.unit.xml |    1 +
 src/shared/virt.c    |   17 +++++++++++++++++
 2 files changed, 18 insertions(+)

New commits:
commit f41925b4e442a34c93ad120ef1426c974a047ed1
Author: Thomas Blume <Thomas.Blume at suse.com>
Date:   Fri Jul 18 09:13:36 2014 -0400

    systemd-detect-virt: detect s390 virtualization
    
    A system that is running on a logical partition (LPAR) provided by
    PR/SM has access to physical hardware (except CPU). It is true that
    PR/SM abstracts the hardware, but only for sharing purposes.
    
    Details are statet at:
    
    http://publib.boulder.ibm.com/infocenter/eserver/v1r2/topic/eicaz/eicazzlpar.htm
    
    -->--
    In other words, PR/SM transforms physical resources into virtual resources so
    that many logical partitions can share the same physical resources.
    --<--
    
    Still, from the OS point of view, the shared virtual resource is real
    hardware. ConditionVirtualization must be set to false if the OS runs
    directly on PR/SM (e.g. in an LPAR).
    
    [zj: reorder code so that variables are not allocated when #if-def is
    false. Add commit message.]

diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml
index 6447584..86a8cbb 100644
--- a/man/systemd.unit.xml
+++ b/man/systemd.unit.xml
@@ -996,6 +996,7 @@
                                 virtualization solution, or one of
                                 <varname>qemu</varname>,
                                 <varname>kvm</varname>,
+                                <varname>zvm</varname>,
                                 <varname>vmware</varname>,
                                 <varname>microsoft</varname>,
                                 <varname>oracle</varname>,
diff --git a/src/shared/virt.c b/src/shared/virt.c
index 20a8d7c..b436895 100644
--- a/src/shared/virt.c
+++ b/src/shared/virt.c
@@ -220,6 +220,23 @@ int detect_vm(const char **id) {
                 goto finish;
         }
 
+#if defined(__s390__)
+        {
+                _cleanup_free_ char *t = NULL;
+
+                r = get_status_field("/proc/sysinfo", "VM00 Control Program:", &t);
+                if (r >= 0) {
+                        if (streq(t, "z/VM"))
+                                _id = "zvm";
+                        else
+                                _id = "kvm";
+                        r = 1;
+
+                        goto finish;
+                }
+        }
+#endif
+
         r = 0;
 
 finish:



More information about the systemd-commits mailing list