[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xenbackendd: remove xenbackendd
On Thu, 2015-07-23 at 16:13 +0200, Roger Pau Monne wrote: > The functionality provided by xenbackendd has been integrated into the xl > toolstack under the devd command on all platforms, because of that it no > longer makes sense to maintain xenbackendd. > > Init scripts have also been provided for all platforms in order to launch > xl > devd in the background, mimicking the functionality provided by > xenbackendd. > Furthermore, xenbackendd is not started by default on NetBSD since a > couple > of releases ago (4.2 was the first release to disable the automatic > startup > of xenbackendd in xencommons). > > Signed-off-by: Roger Pau Monnà <roger.pau@xxxxxxxxxx> > Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> > Cc: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > Cc: Ian Campbell <ian.campbell@xxxxxxxxxx> > Cc: Wei Liu <wei.liu2@xxxxxxxxxx> > Cc: George Dunlap <george.dunlap@xxxxxxxxxxxxx> > Cc: <port-xen@xxxxxxxxxx> I thought I'd replied to this, but the archive and my Sent box both disagree. Anyway: Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Probably not 4.6 material any more though? > --- > tools/Makefile | 1 - > tools/hotplug/Linux/init.d/sysconfig.xencommons.in | 6 - > tools/hotplug/NetBSD/block | 2 +- > tools/hotplug/NetBSD/rc.d/xencommons.in | 2 - > tools/hotplug/NetBSD/vif-bridge | 2 +- > tools/hotplug/NetBSD/vif-ip | 2 +- > tools/xenbackendd/Makefile | 41 --- > tools/xenbackendd/xenbackendd.c | 325 --------------- > ------ > 8 files changed, 3 insertions(+), 378 deletions(-) > delete mode 100644 tools/xenbackendd/Makefile > delete mode 100644 tools/xenbackendd/xenbackendd.c > > diff --git a/tools/Makefile b/tools/Makefile > index 45cb4b2..633fb38 100644 > --- a/tools/Makefile > +++ b/tools/Makefile > @@ -17,7 +17,6 @@ SUBDIRS-y += xenmon > SUBDIRS-y += xenstat > SUBDIRS-$(CONFIG_Linux) += memshr > SUBDIRS-$(CONFIG_BLKTAP2) += blktap2 > -SUBDIRS-$(CONFIG_NetBSD) += xenbackendd > SUBDIRS-y += libfsimage > SUBDIRS-$(CONFIG_Linux) += libvchan > > diff --git a/tools/hotplug/Linux/init.d/sysconfig.xencommons.in > b/tools/hotplug/Linux/init.d/sysconfig.xencommons.in > index f0fa98d..f6f35cd 100644 > --- a/tools/hotplug/Linux/init.d/sysconfig.xencommons.in > +++ b/tools/hotplug/Linux/init.d/sysconfig.xencommons.in > @@ -40,11 +40,5 @@ XENSTORED_ARGS= > # Running xenstored on XENSTORED_ROOTDIR > #XENSTORED_ROOTDIR=@XEN_LIB_STORED@ > > -## Type: string > -## Default: Not defined, xenbackendd debug mode off > -# > -# Running xenbackendd in debug mode > -#XENBACKENDD_DEBUG=[yes|on|1] > - > # qemu path > #QEMU_XEN=@LIBEXEC_BIN@/qemu-system-i386 > diff --git a/tools/hotplug/NetBSD/block b/tools/hotplug/NetBSD/block > index 32c20b6..fc8f668 100644 > --- a/tools/hotplug/NetBSD/block > +++ b/tools/hotplug/NetBSD/block > @@ -1,7 +1,7 @@ > #!/bin/sh -e > > # $NetBSD: block-nbsd,v 1.1.1.1 2008/08/07 20:26:57 cegger Exp $ > -# Called by xenbackendd > +# > # Usage: block xsdir_backend_path state > > DIR=$(dirname "$0") > diff --git a/tools/hotplug/NetBSD/rc.d/xencommons.in > b/tools/hotplug/NetBSD/rc.d/xencommons.in > index d7552cd..9f45cfd 100644 > --- a/tools/hotplug/NetBSD/rc.d/xencommons.in > +++ b/tools/hotplug/NetBSD/rc.d/xencommons.in > @@ -22,8 +22,6 @@ required_files="/kern/xen/privcmd" > > XENSTORED_PIDFILE="/var/run/xenstored.pid" > XENCONSOLED_PIDFILE="/var/run/xenconsoled.pid" > -XENBACKENDD_PIDFILE="/var/run/xenbackendd.pid" > -#XENBACKENDD_DEBUG=1 > #XENCONSOLED_TRACE="/var/log/xen/xenconsole-trace.log" > #XENSTORED_TRACE="/var/log/xen/xenstore-trace.log" > > diff --git a/tools/hotplug/NetBSD/vif-bridge b/tools/hotplug/NetBSD/vif > -bridge > index b58e922..f12edf0 100644 > --- a/tools/hotplug/NetBSD/vif-bridge > +++ b/tools/hotplug/NetBSD/vif-bridge > @@ -1,7 +1,7 @@ > #!/bin/sh -e > > # $NetBSD: vif-bridge-nbsd,v 1.1.1.1 2008/08/07 20:26:57 cegger Exp $ > -# Called by xenbackendd > +# > # Usage: vif-bridge xsdir_backend_path state > > DIR=$(dirname "$0") > diff --git a/tools/hotplug/NetBSD/vif-ip b/tools/hotplug/NetBSD/vif-ip > index 83cbfe2..44200e3 100644 > --- a/tools/hotplug/NetBSD/vif-ip > +++ b/tools/hotplug/NetBSD/vif-ip > @@ -1,7 +1,7 @@ > #!/bin/sh -e > > # $NetBSD: vif-ip-nbsd,v 1.1.1.1 2008/08/07 20:26:57 cegger Exp $ > -# Called by xenbackendd > +# > # Usage: vif-ip xsdir_backend_path state > > DIR=$(dirname "$0") > diff --git a/tools/xenbackendd/Makefile b/tools/xenbackendd/Makefile > deleted file mode 100644 > index f52be74..0000000 > --- a/tools/xenbackendd/Makefile > +++ /dev/null > @@ -1,41 +0,0 @@ > -# Copyright (c) 2009 Advanced Micro Devices, 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; under version 2 of the License. > -# > -# 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. > - > -XEN_ROOT=$(CURDIR)/../.. > -include $(XEN_ROOT)/tools/Rules.mk > - > -CFLAGS += -Werror > -CFLAGS += $(CFLAGS_libxenstore) > -CPPFLAGS += -DXEN_SCRIPT_DIR="\"$(XEN_SCRIPT_DIR)\"" > -LDLIBS += $(LDLIBS_libxenstore) > - > -.PHONY: all > -all: build > - > -.PHONY: build > -build: xenbackendd > - > -.PHONY: install > -install: build > - $(INSTALL_DIR) $(DESTDIR)$(sbindir) > - $(INSTALL_PROG) xenbackendd $(DESTDIR)$(sbindir) > - > -.PHONY: clean > -clean: > - $(RM) *.a *.so *.o $(DEPS) xenbackendd > - > -.PHONY: distclean > -distclean: clean > - > -xenbackendd: xenbackendd.o > - $(CC) $(LDFLAGS) $< -o $@ $(LDLIBS) $(APPEND_LDFLAGS) > - > --include $(DEPS) > diff --git a/tools/xenbackendd/xenbackendd.c > b/tools/xenbackendd/xenbackendd.c > deleted file mode 100644 > index f1eb1f5..0000000 > --- a/tools/xenbackendd/xenbackendd.c > +++ /dev/null > @@ -1,325 +0,0 @@ > -/* $NetBSD: xenbackendd.c,v 1.1.1.1 2008/08/07 20:26:57 cegger Exp $ */ > -/* > - * Copyright (C) 2006 Manuel Bouyer <bouyer@xxxxxxxxxx> > - * Copyright (C) 2009 Christoph Egger <Christoph.Egger@xxxxxxx> > - * > - * 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; under version 2 of the License. > - * > - * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 > USA > - */ > - > -#include <sys/types.h> > -#include <sys/stat.h> > -#include <sys/wait.h> > -#include <unistd.h> > -#include <fcntl.h> > -#include <stdlib.h> > -#include <stdio.h> > -#include <stdarg.h> > -#include <string.h> > -#include <syslog.h> > - > -#include <xenstore.h> > - > -#define DEVTYPE_UNKNOWN 0 > -#define DEVTYPE_VIF 1 > -#define DEVTYPE_VBD 2 > -#define DISABLE_EXEC "libxl/disable_udev" > - > -#define DOMAIN_PATH "/local/domain/0" > - > -#ifndef XEN_SCRIPT_DIR > -#error XEN_SCRIPT_DIR not defined > -#endif > - > -#ifndef VBD_SCRIPT > -#define VBD_SCRIPT XEN_SCRIPT_DIR"/block" > -#endif > -#ifndef LOG_FILE > -#define LOG_FILE "/var/log/xen/xenbackendd.log" > -#endif > -#ifndef PID_FILE > -#define PID_FILE "/var/run/xenbackendd.pid" > -#endif > - > - > -struct xs_handle *xs; > - > -int fflag = 0; > -int dflag = 0; > - > -const char *vbd_script = NULL; > -const char *log_file = NULL; > -const char *pidfile = NULL; > - > -static void > -dolog(int pri, const char *fmt, ...) > -{ > - va_list ap; > - va_start(ap, fmt); > - vfprintf(stderr, fmt, ap); > - va_end(ap); > - fprintf(stderr, "\n"); > - fflush(stderr); > - va_start(ap, fmt); > - vsyslog(pri, fmt, ap); > - va_end(ap); > -} > - > -static void > -dodebug(const char *fmt, ...) > -{ > - va_list ap; > - > - if (dflag == 0) > - return; > - va_start(ap, fmt); > - vfprintf(stdout, fmt, ap); > - va_end(ap); > - printf("\n"); > - fflush(stdout); > -} > - > -static void > -doexec(const char *cmd, const char *arg1, const char *arg2) > -{ > - dodebug("exec %s %s %s", cmd, arg1, arg2); > - switch(vfork()) { > - case -1: > - dolog(LOG_ERR, "can't vfork: %s", strerror(errno)); > - break; > - case 0: > - execl(cmd, cmd, arg1, arg2, NULL); > - dolog(LOG_ERR, "can't exec %s: %s", cmd, > strerror(errno)); > - exit(EXIT_FAILURE); > - /* NOTREACHED */ > - break; > - default: > - wait(NULL); > - break; > - } > -} > - > -static void > -usage(void) > -{ > - fprintf(stderr, > - "usage: %s [-d] [-f] [-l log_file] [-p pif_file] [-s > vbd_script]\n", > - getprogname()); > - exit(EXIT_FAILURE); > -} > - > -static int > -xen_setup(void) > -{ > - xs = xs_daemon_open(); > - if (xs == NULL) { > - dolog(LOG_ERR, > - "Failed to contact xenstore (%s). Is it running?", > - strerror(errno)); > - goto out; > - } > - > - if (!xs_watch(xs, DOMAIN_PATH, "backend")) { > - dolog(LOG_ERR, "xenstore watch on backend fails."); > - goto out; > - } > - return 0; > - > - out: > - if (xs) { > - xs_daemon_close(xs); > - xs = NULL; > - } > - return -1; > -} > - > -int > -main(int argc, char * const argv[]) > -{ > - char **vec; > - unsigned int num; > - char *s; > - int state; > - char *sstate, *sdisable; > - char *p; > - char buf[80]; > - int type; > - int ch; > - int debug_fd; > - FILE *pidfile_f; > - > - while ((ch = getopt(argc, argv, "dfl:p:s:")) != -1) { > - switch (ch) { > - case 'd': > - dflag = 1; > - break; > - case 'f': > - fflag = 1; > - break; > - case 'l': > - log_file = optarg; > - break; > - case 'p': > - pidfile = optarg; > - case 's': > - vbd_script = optarg; > - break; > - default: > - usage(); > - } > - } > - > - if (vbd_script == NULL) > - vbd_script = VBD_SCRIPT; > - if (pidfile == NULL) > - pidfile = PID_FILE; > - if (log_file == NULL) > - log_file = LOG_FILE; > - > - openlog("xenbackendd", LOG_PID | LOG_NDELAY, LOG_DAEMON); > - > - if (fflag == 0) { > - /* open log file */ > - debug_fd = open(log_file, O_RDWR | O_CREAT | O_TRUNC, > 0644); > - if (debug_fd == -1) { > - dolog(LOG_ERR, "can't open %s: %s", > - log_file, strerror(errno)); > - exit(EXIT_FAILURE); > - } > - } > - > - if (fflag == 0) { > - /* daemonize */ > - pidfile_f = fopen(pidfile, "w"); > - if (pidfile_f == NULL) { > - dolog(LOG_ERR, "can't open %s: %s", > - pidfile, strerror(errno)); > - exit(EXIT_FAILURE); > - } > - if (daemon(0, 0) < 0) { > - dolog(LOG_ERR, "can't daemonize: %s", > - strerror(errno)); > - exit(EXIT_FAILURE); > - } > - fprintf(pidfile_f, "%d\n", (int)getpid()); > - fclose(pidfile_f); > - > - /* redirect stderr to log file */ > - if (dup2(debug_fd, STDERR_FILENO) < 0) { > - dolog(LOG_ERR, "can't redirect stderr to %s: > %s\n", > - log_file, strerror(errno)); > - exit(EXIT_FAILURE); > - } > - > - /* also redirect stdout if we're in debug mode */ > - if (dflag) { > - if (dup2(debug_fd, STDOUT_FILENO) < 0) { > - dolog(LOG_ERR, > - "can't redirect stdout to %s: %s\n", > - log_file, strerror(errno)); > - exit(EXIT_FAILURE); > - } > - } > - > - close(debug_fd); > - debug_fd = -1; > - } > - > - if (xen_setup() < 0) > - exit(EXIT_FAILURE); > - > - for (;;) { > - vec = xs_read_watch(xs, &num); > - dodebug("read from xen watch: %s", *vec); > - if (!vec) { > - dolog(LOG_ERR, "xs_read_watch: NULL\n"); > - continue; > - } > - > - sdisable = xs_read(xs, XBT_NULL, DISABLE_EXEC, 0); > - if (sdisable) > - goto next1; > - > - if (strlen(vec[XS_WATCH_PATH]) < sizeof("state")) > - goto next1; > - > - /* find last component of path, check if it's "state" */ > - p = &vec[XS_WATCH_PATH][ > - strlen(vec[XS_WATCH_PATH]) - sizeof("state")]; > - if (p[0] != '/') > - goto next1; > - p[0] = '\0'; > - p++; > - if (strcmp(p, "state") != 0) > - goto next1; > - > - snprintf(buf, sizeof(buf), "%s/state", > vec[XS_WATCH_PATH]); > - sstate = xs_read(xs, XBT_NULL, buf, 0); > - if (sstate == NULL) { > - dolog(LOG_ERR, > - "Failed to read %s (%s)", buf, > strerror(errno)); > - goto next1; > - } > - > - state = atoi(sstate); > - snprintf(buf, sizeof(buf), "%s/hotplug-status", > - vec[XS_WATCH_PATH]); > - s = xs_read(xs, XBT_NULL, buf, 0); > - if (s != NULL && state != 6 /* XenbusStateClosed */) > - goto next2; > - > - type = DEVTYPE_UNKNOWN; > - if (strncmp(vec[XS_WATCH_PATH], > - DOMAIN_PATH "/backend/vif", > - strlen(DOMAIN_PATH "/backend/vif")) == 0) > - type = DEVTYPE_VIF; > - > - if (strncmp(vec[XS_WATCH_PATH], > - DOMAIN_PATH "/backend/vbd", > - strlen(DOMAIN_PATH "/backend/vbd")) == 0) > - type = DEVTYPE_VBD; > - > - switch(type) { > - case DEVTYPE_VIF: > - free(s); > - snprintf(buf, sizeof(buf), "%s/script", > - vec[XS_WATCH_PATH]); > - s = xs_read(xs, XBT_NULL, buf, 0); > - if (s == NULL) { > - dolog(LOG_ERR, > - "Failed to read %s (%s)", buf, > - strerror(errno)); > - goto next2; > - } > - doexec(s, vec[XS_WATCH_PATH], sstate); > - break; > - > - case DEVTYPE_VBD: > - doexec(vbd_script, vec[XS_WATCH_PATH], sstate); > - break; > - > - default: > - break; > - } > - > -next2: > - free(s); > - free(sstate); > - > -next1: > - free(sdisable); > - free(vec); > - } > - > - return 0; > -} _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |