All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony PERARD <anthony.perard@citrix.com>
To: Ian Jackson <ian.jackson@citrix.com>
Cc: xen-devel@lists.xenproject.org, Wei Liu <wei.liu2@citrix.com>,
	Ian Jackson <ian.jackson@eu.citrix.com>
Subject: Re: [PATCH v5 02/15] libxl_qmp: Connect to QMP socket
Date: Thu, 11 Oct 2018 12:27:53 +0100	[thread overview]
Message-ID: <20181011112753.GG1331@perard.uk.xensource.com> (raw)
In-Reply-To: <23486.6847.362789.991990@mariner.uk.xensource.com>

On Wed, Oct 10, 2018 at 04:29:03PM +0100, Ian Jackson wrote:
> Anthony PERARD writes ("[PATCH v5 02/15] libxl_qmp: Connect to QMP socket"):
> > This is a first patch to implement libxl__ev_qmp, it only connects to
> > the QMP socket of QEMU and registers a fd callback that does nothing.
> ...
> > +typedef enum {
> > +    /* initial state */
> > +    qmp_state_disconnected = 1,
> > +    /* connected to QMP socket, waiting for greeting message */
> > +    qmp_state_connecting,
> > +    /* greeting message received */
> > +    qmp_state_greeting,
> > +    /* qmp_capabilities command sent, waiting for reply */
> > +    qmp_state_capability_negotiation,
> > +    /* ready to send commands */
> > +    qmp_state_connected,
> > +} libxl__qmp_state;
> 
> IWBN to relate these private states to the outward-facing API states
> like `Connected'.

I think, that would be:
  qmp_state_disconnected,             Idle
  qmp_state_connecting,               Active
  qmp_state_greeting,                 Active
  qmp_state_capability_negotiation,   Active
  qmp_state_connected,                Active/Connected

I can try to squeeze this information somewhere.

> I often write a table of legal field values - see for example,
> libxl_exec.c near l.241 and libxl_stream_read.c near l.35.  But maybe
> this is not complicated enough to need that.

Indeed, I don't think the relation is complicated enough.

> > +static int qmp_ev_connect(libxl__gc *gc, libxl__ev_qmp *ev)
> > +{
> ...
> > +    r = connect(libxl__carefd_fd(ev->qmp_cfd),
> > +                (struct sockaddr *) &un, sizeof(un));
> 
> Up to here:
> 
> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
> 
> But:
> 
> > +int libxl__ev_qmp_send(libxl__gc *gc, libxl__ev_qmp *ev,
> > +                       const char *cmd, libxl__json_object *args)
> > +{
> > +    LOGD(DEBUG, ev->domid, " ev %p, cmd '%s'", ev, cmd);
> > +
> > +    /* Connect to QEMU if not already connected */
> > +    return qmp_ev_connect(gc, ev);
> > +}
> 
> I think it would be nicer to read a complete implementation of this
> function.  Right now it's obviously wrong and impossible to review.
> 
> So please postpone this hunk.

It would have been nice if I could, but we can't have unused static
function. But let me reply to the review of the next patch.

-- 
Anthony PERARD

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

  reply	other threads:[~2018-10-11 11:27 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20181015151630.3887-1-ian.jackson@eu.citrix.com>
2018-09-07 15:10 ` [PATCH v5 00/15] libxl: Enable save/restore/migration of a restricted QEMU + libxl__ev_qmp_* Anthony PERARD
2018-09-07 15:10   ` [PATCH v5 01/15] libxl: Design of an async API to issue QMP commands to QEMU Anthony PERARD
2018-10-10 15:18     ` Ian Jackson
2018-10-11 11:17       ` Anthony PERARD
2018-10-11 11:21         ` Ian Jackson
2018-10-10 23:49     ` Marek Marczykowski-Górecki
2018-10-11 14:29       ` Anthony PERARD
2018-09-07 15:10   ` [PATCH v5 02/15] libxl_qmp: Connect to QMP socket Anthony PERARD
2018-10-10 15:29     ` Ian Jackson
2018-10-11 11:27       ` Anthony PERARD [this message]
2018-09-07 15:10   ` [PATCH v5 03/15] libxl_qmp: Implement fd callback and read data Anthony PERARD
2018-10-10 15:47     ` Ian Jackson
2018-10-11 14:06       ` Anthony PERARD
2018-10-15 14:04         ` Ian Jackson
2018-10-15 16:35         ` [PATCH v5 03/15] libxl_qmp: Implement fd callback and read data [and 1 more messages] Ian Jackson
2018-10-29 15:52           ` Anthony PERARD
2018-10-29 17:31             ` Ian Jackson
2018-10-30 18:03               ` Anthony PERARD
2018-10-30 18:25                 ` Ian Jackson
2018-09-07 15:10   ` [PATCH v5 04/15] libxl_qmp: Parse JSON input from QMP Anthony PERARD
2018-09-07 15:10   ` [PATCH v5 05/15] libxl_qmp: Separate QMP message generation from qmp_send_prepare Anthony PERARD
2018-09-07 15:10   ` [PATCH v5 06/15] libxl_qmp: Prepare the command to be sent Anthony PERARD
2018-09-07 15:10   ` [PATCH v5 07/15] libxl_qmp: Handle write to QMP socket Anthony PERARD
2018-09-07 15:10   ` [PATCH v5 08/15] libxl_qmp: Handle messages from QEMU Anthony PERARD
2018-09-07 15:10   ` [PATCH v5 09/15] libxl_qmp: Respond to QMP greeting Anthony PERARD
2018-09-07 15:10   ` [PATCH v5 10/15] libxl_exec: Add libxl__spawn_initiate_failure Anthony PERARD
2018-10-16 14:02     ` Ian Jackson
2018-11-09 12:26       ` Anthony PERARD
2018-09-07 15:11   ` [PATCH v5 11/15] libxl_dm: Pre-open QMP socket for QEMU Anthony PERARD
2018-10-16 14:11     ` Ian Jackson
2018-11-12 14:52       ` Anthony PERARD
2018-11-12 15:14         ` Ian Jackson
2018-11-12 15:22           ` Anthony PERARD
2018-11-12 15:54             ` Ian Jackson
2018-09-07 15:11   ` [PATCH v5 12/15] libxl: QEMU startup sync based on QMP Anthony PERARD
2018-10-16 14:23     ` Ian Jackson
2018-11-12 15:00       ` Anthony PERARD
2018-11-12 15:17         ` Ian Jackson
2018-09-07 15:11   ` [PATCH v5 13/15] libxl_qmp: Store advertised QEMU version in libxl__ev_qmp Anthony PERARD
2018-10-16 14:25     ` Ian Jackson
2018-09-07 15:11   ` [PATCH v5 14/15] libxl: Change libxl__domain_suspend_device_model() to be async Anthony PERARD
2018-10-16 15:14     ` Ian Jackson
2018-09-07 15:11   ` [PATCH v5 15/15] libxl: Re-implement domain_suspend_device_model using libxl__ev_qmp Anthony PERARD
2018-10-16 15:28     ` Ian Jackson
2018-11-09 16:59       ` Anthony PERARD
2018-11-09 17:11         ` Ian Jackson
2018-11-09 17:30           ` Anthony PERARD

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=20181011112753.GG1331@perard.uk.xensource.com \
    --to=anthony.perard@citrix.com \
    --cc=ian.jackson@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xenproject.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.