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

Re: [Xen-devel] [PATCH] tools/xc: restore logging in xc_save



On Fri, 2013-02-01 at 18:58 +0000, Olaf Hering wrote:
> # HG changeset patch
> # User Olaf Hering <olaf@xxxxxxxxx>
> # Date 1359745022 -3600
> # Node ID d76b38b799293ff17fed8eaaac8fbbebced1b72f
> # Parent  6d1d516ecaade56f796e3216e9931fdcc12282cd
> tools/xc: restore logging in xc_save
> 
> Prior to xen-4.1 the helper xc_save would print some progress during
> migration. With the new xc_interface_open API no more messages were
> printed because no logger was configured.
> 
> Restore previous behaviour by providing a logger. The progress in
> xc_domain_save will be disabled because its output lacks a linefeed
> which makes xend.log look ugly.
> 
> Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
> 
> diff -r 6d1d516ecaad -r d76b38b79929 tools/xcutils/xc_save.c
> --- a/tools/xcutils/xc_save.c
> +++ b/tools/xcutils/xc_save.c
> @@ -166,17 +166,15 @@ static int switch_qemu_logdirty(int domi
>  int
>  main(int argc, char **argv)
>  {
> -    unsigned int maxit, max_f;
> +    unsigned int maxit, max_f, lflags;
>      int io_fd, ret, port;
>      struct save_callbacks callbacks;
> +    xentoollog_level lvl;
> +    xentoollog_logger *l;
>  
>      if (argc != 6)
>          errx(1, "usage: %s iofd domid maxit maxf flags", argv[0]);
>  
> -    si.xch = xc_interface_open(0,0,0);
> -    if (!si.xch)
> -        errx(1, "failed to open control interface");
> -
>      io_fd = atoi(argv[1]);
>      si.domid = atoi(argv[2]);
>      maxit = atoi(argv[3]);
> @@ -185,6 +183,13 @@ main(int argc, char **argv)
>  
>      si.suspend_evtchn = -1;
>  
> +    lvl = si.flags & XCFLAGS_DEBUG ? XTL_DEBUG: XTL_DETAIL;
> +    lflags = XTL_STDIOSTREAM_HIDE_PROGRESS;

Would it be useful (as an extension) to implement an XTL_STDIOSTREAM
flag which makes it output something more suitable for logging,
e.g. ...10%...20%...30%... 
(or perhaps automatic based on isatty(outputfd)?)

> +    l = (xentoollog_logger *)xtl_createlogger_stdiostream(stderr, lvl, 
> lflags);

Might this fail and therefore require error handling?

The lvl and lflags variables seem a bit useless to me.

> +    si.xch = xc_interface_open(l, 0, 0);
> +    if (!si.xch)
> +        errx(1, "failed to open control interface");
> +
>      si.xce = xc_evtchn_open(NULL, 0);
>      if (si.xce == NULL)
>          warnx("failed to open event channel handle");
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel



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


 


Rackspace

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