xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] xenbackendd: remove xenbackendd
@ 2015-07-23 14:13 Roger Pau Monne
  2015-07-28 11:12 ` Ian Campbell
       [not found] ` <1438081979.11600.131.camel@citrix.com>
  0 siblings, 2 replies; 4+ messages in thread
From: Roger Pau Monne @ 2015-07-23 14:13 UTC (permalink / raw)
  To: xen-devel
  Cc: Wei Liu, Ian Campbell, port-xen, Stefano Stabellini,
	George Dunlap, Ian Jackson, Roger Pau Monne

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@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>
Cc: George Dunlap <george.dunlap@eu.citrix.com>
Cc: <port-xen@netbsd.org>
---
 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@netbsd.org>
- * Copyright (C) 2009 Christoph Egger <Christoph.Egger@amd.com>
- *
- *  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;
-}
-- 
1.9.5 (Apple Git-50.3)


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] xenbackendd: remove xenbackendd
  2015-07-23 14:13 [PATCH] xenbackendd: remove xenbackendd Roger Pau Monne
@ 2015-07-28 11:12 ` Ian Campbell
       [not found] ` <1438081979.11600.131.camel@citrix.com>
  1 sibling, 0 replies; 4+ messages in thread
From: Ian Campbell @ 2015-07-28 11:12 UTC (permalink / raw)
  To: Roger Pau Monne, xen-devel
  Cc: George Dunlap, Wei Liu, Ian Jackson, port-xen, Stefano Stabellini

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@citrix.com>
> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
> Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> Cc: Ian Campbell <ian.campbell@citrix.com>
> Cc: Wei Liu <wei.liu2@citrix.com>
> Cc: George Dunlap <george.dunlap@eu.citrix.com>
> Cc: <port-xen@netbsd.org>

I thought I'd replied to this, but the archive and my Sent box both
disagree. Anyway:

Acked-by: Ian Campbell <ian.campbell@citrix.com>

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@netbsd.org>
> - * Copyright (C) 2009 Christoph Egger <Christoph.Egger@amd.com>
> - *
> - *  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@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] xenbackendd: remove xenbackendd
       [not found] ` <1438081979.11600.131.camel@citrix.com>
@ 2015-07-28 13:49   ` Roger Pau Monné
       [not found]   ` <55B78873.7000209@citrix.com>
  1 sibling, 0 replies; 4+ messages in thread
From: Roger Pau Monné @ 2015-07-28 13:49 UTC (permalink / raw)
  To: Ian Campbell, xen-devel
  Cc: George Dunlap, Wei Liu, Ian Jackson, port-xen, Stefano Stabellini

El 28/07/15 a les 13.12, Ian Campbell ha escrit:
> 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@citrix.com>
>> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
>> Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>> Cc: Ian Campbell <ian.campbell@citrix.com>
>> Cc: Wei Liu <wei.liu2@citrix.com>
>> Cc: George Dunlap <george.dunlap@eu.citrix.com>
>> Cc: <port-xen@netbsd.org>
> 
> I thought I'd replied to this, but the archive and my Sent box both
> disagree. Anyway:
> 
> Acked-by: Ian Campbell <ian.campbell@citrix.com>
> 
> Probably not 4.6 material any more though?

Although the risk of this breaking other things is very low IMHO, I
don't see much benefit of pushing it to 4.6. It's not going to make the
release better or less buggy.

Roger.


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] xenbackendd: remove xenbackendd
       [not found]   ` <55B78873.7000209@citrix.com>
@ 2015-07-28 13:54     ` George Dunlap
  0 siblings, 0 replies; 4+ messages in thread
From: George Dunlap @ 2015-07-28 13:54 UTC (permalink / raw)
  To: Roger Pau Monné, Ian Campbell, xen-devel
  Cc: George Dunlap, Wei Liu, Ian Jackson, port-xen, Stefano Stabellini

On 07/28/2015 02:49 PM, Roger Pau Monné wrote:
> El 28/07/15 a les 13.12, Ian Campbell ha escrit:
>> 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@citrix.com>
>>> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
>>> Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>>> Cc: Ian Campbell <ian.campbell@citrix.com>
>>> Cc: Wei Liu <wei.liu2@citrix.com>
>>> Cc: George Dunlap <george.dunlap@eu.citrix.com>
>>> Cc: <port-xen@netbsd.org>
>>
>> I thought I'd replied to this, but the archive and my Sent box both
>> disagree. Anyway:
>>
>> Acked-by: Ian Campbell <ian.campbell@citrix.com>
>>
>> Probably not 4.6 material any more though?
> 
> Although the risk of this breaking other things is very low IMHO, I
> don't see much benefit of pushing it to 4.6. It's not going to make the
> release better or less buggy.

Well, and given that the NetBSD guys have objected before, it might be
seen as a bit dodgy to shove a change in at the last minute with no
opportunity for them to object again.  Given it's just getting rid of
dead code, there's no urgency.

 -George

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-07-28 13:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-23 14:13 [PATCH] xenbackendd: remove xenbackendd Roger Pau Monne
2015-07-28 11:12 ` Ian Campbell
     [not found] ` <1438081979.11600.131.camel@citrix.com>
2015-07-28 13:49   ` Roger Pau Monné
     [not found]   ` <55B78873.7000209@citrix.com>
2015-07-28 13:54     ` George Dunlap

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).