From: Ian Campbell <ian.campbell@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>,
Ian Jackson <Ian.Jackson@eu.citrix.com>,
Xen-devel <xen-devel@lists.xen.org>
Subject: Re: [PATCH v9 02/15] libxc/progress: Extend the progress interface
Date: Wed, 22 Apr 2015 16:38:59 +0100 [thread overview]
Message-ID: <1429717139.30934.46.camel@citrix.com> (raw)
In-Reply-To: <5534FBDA.2070201@citrix.com>
On Mon, 2015-04-20 at 14:15 +0100, Andrew Cooper wrote:
> On 15/04/15 11:55, Ian Campbell wrote:
> > On Fri, 2015-04-10 at 18:15 +0100, Andrew Cooper wrote:
> >> Not everything which needs reporting as progress comes with a range. Extend
> >> the interface to allow reporting of a single statement.
> >>
> >> The programming interface now looks like:
> >> xc_set_progress_prefix()
> >> set the prefix string to be used
> >> xc_report_progress_single()
> >> report a single action
> >> xc_report_progress_step()
> >> report $X of $Y
> >>
> >> The new programming interface is implemented in a compatible way with the
> >> existing caller interface (by reporting a single action as "0 of 0").
> > I suppose the underlying motivation here is that there a difference
> > between this new xc_report_progress_step and calling xc_report/v? IOW
> > some difference between the semantics of the logger's ->vmessage and
> > ->progress hooks. What is it though?
>
> They arrive via separate callbacks to the callee.
>
> xc_report_progress & friends come through the domain build logger
> (parameter 2 of xc_interface_open()) while other logging tends to come
> through the regular logger (parameter 1 of xc_interface_open()).
>
> Technically speaking, xc_report/v does allow the caller to choose which
> logger is used, but also requires the caller to provide all the fine
> detail, which detracts from the readability of the callsite.
>
> This new progress API attempts to resolve this by providing a high level
> way of putting a single message through the progress logger.
Makes sense, thanks.
> > I suspected the distinction was in the automatic inclusion of
> > xch->currently_progress_reporting into the messages, but you appear to
> > make that non-mandatory below.
> >
> > Speaking of which, I think it should be mandatory now to call
> > xc_set_progress_prefix as it was to call progress_start before, and that
> > both of your new functions should assert. Those who think they want to
> > use xc_report_progress_single without calling xc_set_progress_prefix
> > should be using xc_report() instead.
>
> Technically speaking it is safe to use a NULL prefix; the vsprintf won't
> fall over.
Having log message prefixed by "(null)" or whatever would be a bit
rubbish. I think lets keep the current semantics (by asserting things
have been set) and if there is a strong case to allow no prefix relax
things in a subsequent patch which makes everywhere DTRT.
> I can assert() that these invariants are held, but it is not critical to
> the functionality.
Yes, please add the asserts for now.
Ian.
next prev parent reply other threads:[~2015-04-22 15:38 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-10 17:15 [PATCH v9 00/15] Migration v2 (libxc) Andrew Cooper
2015-04-10 17:15 ` [PATCH v9 01/15] tools/libxc: Implement writev_exact() in the same style as write_exact() Andrew Cooper
2015-04-15 10:44 ` Ian Campbell
2015-04-10 17:15 ` [PATCH v9 02/15] libxc/progress: Extend the progress interface Andrew Cooper
2015-04-15 10:55 ` Ian Campbell
2015-04-20 13:15 ` Andrew Cooper
2015-04-22 15:38 ` Ian Campbell [this message]
2015-04-10 17:15 ` [PATCH v9 03/15] tools/libxc: Migration v2 framework Andrew Cooper
2015-04-15 10:57 ` Ian Campbell
2015-04-10 17:15 ` [PATCH v9 04/15] tools/libxc: C implementation of stream format Andrew Cooper
2015-04-15 10:59 ` Ian Campbell
2015-04-10 17:15 ` [PATCH v9 05/15] tools/libxc: noarch common code Andrew Cooper
2015-04-15 11:00 ` Ian Campbell
2015-04-10 17:15 ` [PATCH v9 06/15] tools/libxc: x86 " Andrew Cooper
2015-04-10 17:15 ` [PATCH v9 07/15] tools/libxc: x86 PV " Andrew Cooper
2015-04-15 11:07 ` Ian Campbell
2015-04-10 17:16 ` [PATCH v9 08/15] tools/libxc: x86 PV save code Andrew Cooper
2015-04-15 11:13 ` Ian Campbell
2015-04-15 11:41 ` Andrew Cooper
2015-04-15 11:52 ` Ian Campbell
2015-04-10 17:16 ` [PATCH v9 09/15] tools/libxc: x86 PV restore code Andrew Cooper
2015-04-15 11:22 ` Ian Campbell
2015-04-10 17:16 ` [PATCH v9 10/15] tools/libxc: x86 HVM save code Andrew Cooper
2015-04-13 12:28 ` Vitaly Kuznetsov
2015-04-13 13:21 ` Andrew Cooper
2015-04-15 11:29 ` Ian Campbell
2015-04-15 11:30 ` Ian Campbell
2015-04-10 17:16 ` [PATCH v9 11/15] tools/libxc: x86 HVM restore code Andrew Cooper
2015-04-15 11:31 ` Ian Campbell
2015-04-10 17:16 ` [PATCH v9 12/15] tools/libxc: noarch save code Andrew Cooper
2015-04-15 11:34 ` Ian Campbell
2015-04-10 17:16 ` [PATCH v9 13/15] tools/libxc: noarch restore code Andrew Cooper
2015-04-15 11:42 ` Ian Campbell
2015-04-15 11:50 ` Andrew Cooper
2015-04-15 11:53 ` Ian Campbell
2015-04-10 17:16 ` [PATCH v9 14/15] docs: libxc migration stream specification Andrew Cooper
2015-04-15 11:46 ` Ian Campbell
2015-04-15 12:05 ` Andrew Cooper
2015-04-15 12:11 ` Ian Campbell
2015-04-15 12:02 ` David Vrabel
2015-04-15 12:09 ` Andrew Cooper
2015-04-10 17:16 ` [PATCH v9 15/15] tools/libxc: Migration v2 compatibility for unmodified libxl Andrew Cooper
2015-04-15 11:51 ` Ian Campbell
2015-04-15 12:14 ` Andrew Cooper
2015-04-15 12:52 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1429717139.30934.46.camel@citrix.com \
--to=ian.campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=andrew.cooper3@citrix.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.