[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] tools/xenstored: support complete log capabilities in stubdom



commit 8937d44628f79e0aa6b6a392fe9a18b2efcd9f4c
Author:     Juergen Gross <jgross@xxxxxxxx>
AuthorDate: Thu Feb 29 13:48:29 2024 +0100
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Thu Feb 29 17:00:14 2024 +0100

    tools/xenstored: support complete log capabilities in stubdom
    
    With 9pfs being fully available in Xenstore-stubdom now, there is no
    reason to not fully support all logging capabilities in stubdom.
    
    Open the logfile on stubdom only after the 9pfs file system has been
    mounted.
    
    Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
    Reviewed-by: Jason Andryuk <jandryuk@xxxxxxxxx>
    Reviewed-by: Julien Grall <jgrall@xxxxxxxxxx>
    Acked-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
---
 tools/hotplug/Linux/init.d/sysconfig.xencommons.in |  1 -
 tools/hotplug/Linux/launch-xenstore.in             |  1 +
 tools/xenstored/control.c                          | 30 +++++++++++-----------
 tools/xenstored/minios.c                           |  3 +++
 4 files changed, 19 insertions(+), 16 deletions(-)

diff --git a/tools/hotplug/Linux/init.d/sysconfig.xencommons.in 
b/tools/hotplug/Linux/init.d/sysconfig.xencommons.in
index 433e4849af..1bdd830d8a 100644
--- a/tools/hotplug/Linux/init.d/sysconfig.xencommons.in
+++ b/tools/hotplug/Linux/init.d/sysconfig.xencommons.in
@@ -58,7 +58,6 @@ XENSTORED_ARGS=
 ## Default: Not defined, tracing off
 #
 # Log xenstored messages
-# Only evaluated if XENSTORETYPE is "daemon".
 #XENSTORED_TRACE=[yes|on|1]
 
 ## Type: integer
diff --git a/tools/hotplug/Linux/launch-xenstore.in 
b/tools/hotplug/Linux/launch-xenstore.in
index e854ca1eb8..da4eeca7c5 100644
--- a/tools/hotplug/Linux/launch-xenstore.in
+++ b/tools/hotplug/Linux/launch-xenstore.in
@@ -98,6 +98,7 @@ test -f @CONFIG_DIR@/@CONFIG_LEAF_DIR@/xencommons && . 
@CONFIG_DIR@/@CONFIG_LEAF
        [ -z "$XENSTORE_DOMAIN_SIZE" ] && XENSTORE_DOMAIN_SIZE=8
        XENSTORE_DOMAIN_ARGS="$XENSTORE_DOMAIN_ARGS --memory 
$XENSTORE_DOMAIN_SIZE"
        [ -z "$XENSTORE_MAX_DOMAIN_SIZE" ] || 
XENSTORE_DOMAIN_ARGS="$XENSTORE_DOMAIN_ARGS --maxmem $XENSTORE_MAX_DOMAIN_SIZE"
+       [ -z "$XENSTORED_TRACE" ] || 
XENSTORE_DOMAIN_ARGS="$XENSTORE_DOMAIN_ARGS -T xenstored-trace.log"
 
        echo -n Starting $XENSTORE_DOMAIN_KERNEL...
        ${LIBEXEC_BIN}/init-xenstore-domain $XENSTORE_DOMAIN_ARGS || exit 1
diff --git a/tools/xenstored/control.c b/tools/xenstored/control.c
index b2f64d674f..dae23a5ac0 100644
--- a/tools/xenstored/control.c
+++ b/tools/xenstored/control.c
@@ -201,19 +201,6 @@ static int do_control_quota_s(const void *ctx, struct 
connection *conn,
        return EINVAL;
 }
 
-#ifdef __MINIOS__
-static int do_control_memreport(const void *ctx, struct connection *conn,
-                               const char **vec, int num)
-{
-       if (num)
-               return EINVAL;
-
-       talloc_report_full(NULL, stdout);
-
-       send_ack(conn, XS_CONTROL);
-       return 0;
-}
-#else
 static int do_control_logfile(const void *ctx, struct connection *conn,
                              const char **vec, int num)
 {
@@ -222,13 +209,26 @@ static int do_control_logfile(const void *ctx, struct 
connection *conn,
 
        close_log();
        talloc_free(tracefile);
-       tracefile = talloc_strdup(NULL, vec[0]);
+       tracefile = absolute_filename(NULL, vec[0]);
        reopen_log();
 
        send_ack(conn, XS_CONTROL);
        return 0;
 }
 
+#ifdef __MINIOS__
+static int do_control_memreport(const void *ctx, struct connection *conn,
+                               const char **vec, int num)
+{
+       if (num)
+               return EINVAL;
+
+       talloc_report_full(NULL, stdout);
+
+       send_ack(conn, XS_CONTROL);
+       return 0;
+}
+#else
 static int do_control_memreport(const void *ctx, struct connection *conn,
                                const char **vec, int num)
 {
@@ -309,10 +309,10 @@ static struct cmd_s cmds[] = {
                "[-c <cmdline>] [-F] [-t <timeout>] <file>\n"
                "    Default timeout is 60 seconds.", 5 },
 #endif
+       { "logfile", do_control_logfile, "<file>" },
 #ifdef __MINIOS__
        { "memreport", do_control_memreport, "" },
 #else
-       { "logfile", do_control_logfile, "<file>" },
        { "memreport", do_control_memreport, "[<file>]" },
 #endif
        { "print", do_control_print, "<string>" },
diff --git a/tools/xenstored/minios.c b/tools/xenstored/minios.c
index e70386f8c7..a229954cf4 100644
--- a/tools/xenstored/minios.c
+++ b/tools/xenstored/minios.c
@@ -122,6 +122,9 @@ static void mount_thread(void *p)
        }
 
        p9_device = init_9pfront(0, XENSTORE_LIB_DIR);
+
+       /* Start logging if selected. */
+       reopen_log();
 }
 
 void mount_9pfs(void)
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.