[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-xen-4.5] tools/hotplug: fix systemd service files for dom0
On Wed, Oct 15, 2014 at 11:11:58AM +0200, Olaf Hering wrote: > ConditionVirtualization= checks if systemd runs in some sort of guest. > It is not supposed to detect host capabilities. The current > implementation happens to work because systemd-detect-virt from v208 > returns also 'xen' in a dom0. In v210 and later 'none' is returned and > all service files are not started. > > Adjust the checks to detect a dom0 vs. native boot. Mounting xenfs > depends on /proc/xen, but should only be done for pvops because xenfs > exists only there. All other service files should not be started in > domU. The file /proc/xen/capabilities exists in both dom0 and domU in a > pvops kernel, but only in dom0 it contains 'control_d'. The existing > ExecStartPre= check will prevent starting in a domU. > > ConditionVirtualization=!xen is true in a dom0. But this check is broken > in systemd v208, so its not used. > > Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> > Cc: Ian Campbell <ian.campbell@xxxxxxxxxx> > Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> > Cc: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > Cc: Wei Liu <wei.liu2@xxxxxxxxxx> > --- > > I'm having a hard time to get a pvops dom0, so this is only tested with SUSE > dom0. I've tested this patch in both dom0 and bare metal (with Linux 3.17.1 and systemd v216) and it mostly works, only one unit does not work, var-lib-xenstored.mount. (for some reason, ConditionVirtualization=xen, is still true on dom0 with systemd v216, even so systemd-detect-virt is returning 'none' ...) > tools/hotplug/Linux/systemd/proc-xen.mount.in | 3 ++- > tools/hotplug/Linux/systemd/var-lib-xenstored.mount.in | 2 +- > tools/hotplug/Linux/systemd/xen-qemu-dom0-disk-backend.service.in | 2 +- > tools/hotplug/Linux/systemd/xen-watchdog.service.in | 2 +- > tools/hotplug/Linux/systemd/xenconsoled.service.in | 2 +- > tools/hotplug/Linux/systemd/xendomains.service.in | 2 +- > tools/hotplug/Linux/systemd/xenstored.service.in | 2 +- > tools/hotplug/Linux/systemd/xenstored.socket.in | 2 +- > tools/hotplug/Linux/systemd/xenstored_ro.socket.in | 2 +- > 9 files changed, 10 insertions(+), 9 deletions(-) > > diff --git a/tools/hotplug/Linux/systemd/proc-xen.mount.in > b/tools/hotplug/Linux/systemd/proc-xen.mount.in > index f0c4f3a..64ebe7f 100644 > --- a/tools/hotplug/Linux/systemd/proc-xen.mount.in > +++ b/tools/hotplug/Linux/systemd/proc-xen.mount.in > @@ -1,6 +1,7 @@ > [Unit] > Description=Mount /proc/xen files > -ConditionVirtualization=xen > +ConditionPathExists=/proc/xen > +ConditionPathExists=!/proc/xen/capabilities > RefuseManualStop=true > > [Mount] > diff --git a/tools/hotplug/Linux/systemd/var-lib-xenstored.mount.in > b/tools/hotplug/Linux/systemd/var-lib-xenstored.mount.in > index 1e930ed..64b560f 100644 > --- a/tools/hotplug/Linux/systemd/var-lib-xenstored.mount.in > +++ b/tools/hotplug/Linux/systemd/var-lib-xenstored.mount.in > @@ -1,6 +1,6 @@ > [Unit] > Description=mount xenstore file system > -ConditionVirtualization=xen > +ConditionPathExists=/proc/xen/capabilities On my systemd, var/lib/xenstored is not mounted because ConditionPathExists=/proc/xen/capabilities was not met even so proc-xen.mount is mounted. So there is probably a dependency missing on proc-xen.mount. > RefuseManualStop=true > > [Mount] -- Anthony PERARD _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |