WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH 14/14] xl/libxtl: Remove glitch in xl migrate log out

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH 14/14] xl/libxtl: Remove glitch in xl migrate log output
From: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Date: Thu, 27 May 2010 17:01:14 +0100
Cc: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>, Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Delivery-date: Thu, 27 May 2010 09:33:17 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1274976074-3965-14-git-send-email-ian.jackson@xxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1274976074-3965-1-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1274976074-3965-2-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1274976074-3965-3-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1274976074-3965-4-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1274976074-3965-5-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1274976074-3965-6-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1274976074-3965-7-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1274976074-3965-8-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1274976074-3965-9-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1274976074-3965-10-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1274976074-3965-11-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1274976074-3965-12-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1274976074-3965-13-git-send-email-ian.jackson@xxxxxxxxxxxxx> <1274976074-3965-14-git-send-email-ian.jackson@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
* Provide a new XTL_STDIOSTREAM_HIDE_PROGRESS flag in the stdio logger
* Provide a way to adjust the flags after logger setup
* Use these to disable progress output from the migration receiver, as
  the sender is also sending progress information.

Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
 tools/libxc/xentoollog.h       |   11 +++++++++--
 tools/libxc/xtl_logger_stdio.c |   15 +++++++++++++++
 tools/libxl/xl_cmdimpl.c       |    8 +++++++-
 3 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/tools/libxc/xentoollog.h b/tools/libxc/xentoollog.h
index d467168..40ac3c4 100644
--- a/tools/libxc/xentoollog.h
+++ b/tools/libxc/xentoollog.h
@@ -51,8 +51,9 @@ struct xentoollog_logger {
 
 /*---------- facilities for consuming log messages ----------*/
 
-#define XTL_STDIOSTREAM_SHOW_PID  01u
-#define XTL_STDIOSTREAM_SHOW_DATE 02u
+#define XTL_STDIOSTREAM_SHOW_PID      01u
+#define XTL_STDIOSTREAM_SHOW_DATE     02u
+#define XTL_STDIOSTREAM_HIDE_PROGRESS 04u
 
 typedef struct xentoollog_logger_stdiostream  xentoollog_logger_stdiostream;
 
@@ -61,6 +62,12 @@ xentoollog_logger_stdiostream *xtl_createlogger_stdiostream
     /* may return 0 if malloc fails, in which case error was logged */
     /* destroy on this logger does not close the file */
 
+void xtl_stdiostream_set_minlevel(xentoollog_logger_stdiostream*,
+                                  xentoollog_level min_level);
+void xtl_stdiostream_adjust_flags(xentoollog_logger_stdiostream*,
+                                  unsigned set_flags, unsigned clear_flags);
+  /* if set_flags and clear_flags overlap, set_flags takes precedence */
+
 void xtl_logger_destroy(struct xentoollog_logger *logger /* 0 is ok */);
 
 
diff --git a/tools/libxc/xtl_logger_stdio.c b/tools/libxc/xtl_logger_stdio.c
index abe274a..1bfa9a9 100644
--- a/tools/libxc/xtl_logger_stdio.c
+++ b/tools/libxc/xtl_logger_stdio.c
@@ -75,6 +75,9 @@ static void stdiostream_progress(struct xentoollog_logger 
*logger_in,
     int newpel, extra_erase;
     xentoollog_level this_level;
 
+    if (!(lg->flags & XTL_STDIOSTREAM_HIDE_PROGRESS))
+        return;
+
     if (percent < lg->progress_last_percent) {
         this_level = XTL_PROGRESS;
     } else if (percent == lg->progress_last_percent) {
@@ -108,6 +111,18 @@ static void stdiostream_destroy(struct xentoollog_logger 
*logger_in) {
     free(lg);
 }
 
+void xtl_stdiostream_set_minlevel(xentoollog_logger_stdiostream *lg,
+                                  xentoollog_level min_level) {
+    lg->min_level = min_level;
+}
+
+void xtl_stdiostream_adjust_flags(xentoollog_logger_stdiostream *lg,
+                                  unsigned set_flags, unsigned clear_flags) {
+    unsigned new_flags = (lg->flags & ~clear_flags) | set_flags;
+    if (new_flags & XTL_STDIOSTREAM_HIDE_PROGRESS)
+        progress_erase(lg);
+    lg->flags = new_flags;
+}
 
 xentoollog_logger_stdiostream *xtl_createlogger_stdiostream
         (FILE *f, xentoollog_level min_level, unsigned flags) {
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index abe4c9d..b55029a 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -1917,6 +1917,8 @@ static void migrate_domain(char *domain_spec, const char 
*rune,
     save_domain_core_writeconfig(send_fd, "migration stream",
                                  config_data, config_len);
 
+    xtl_stdiostream_adjust_flags(logger, XTL_STDIOSTREAM_HIDE_PROGRESS, 0);
+
     memset(&suspinfo, 0, sizeof(suspinfo));
     suspinfo.flags |= XL_SUSPEND_LIVE;
     rc = libxl_domain_suspend(&ctx, &suspinfo, domid, send_fd);
@@ -1926,13 +1928,17 @@ static void migrate_domain(char *domain_spec, const 
char *rune,
         goto failed_resume;
     }
 
-    fprintf(stderr, "migration sender: Transfer complete.\n");
+    //fprintf(stderr, "migration sender: Transfer complete.\n");
+    // Should only be printed when debugging as it's a bit messy with
+    // progress indication.
 
     rc = migrate_read_fixedmessage(recv_fd, migrate_receiver_ready,
                                    sizeof(migrate_receiver_ready),
                                    "ready message", rune);
     if (rc) goto failed_resume;
 
+    xtl_stdiostream_adjust_flags(logger, 0, XTL_STDIOSTREAM_HIDE_PROGRESS);
+
     /* right, at this point we are about give the destination
      * permission to rename and resume, so we must first rename the
      * domain away ourselves */
-- 
1.5.6.5


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel