xen-devel
[Xen-devel] Re: [PATCH] libxl, Introduce a QMP client
On Mon, 2011-06-06 at 14:26 +0100, Anthony Perard wrote:
> From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
>
> QMP stands for QEMU Monitor Protocol and it is used to query information
> from QEMU or to control QEMU.
>
> This implementation will ask QEMU the list of chardevice and store the
> path to serial0 in xenstored. So we will be able to use xl console with
> QEMU upstream.
>
> In order to connect to the QMP server, a socket file is created in
> /var/run/xen/qmp-$(domid).
>
> Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
I didn't yet review this in detail but I have a few initial
questions/thoughts.
Am I correct that QMP is intended to provide a stable interface going
forwards? Or are we tying ourselves to a particular qemu version and/or
will we need version specific bits (and associated configuration stuff)
in the future?
I think we should try where possible to keep this stuff entirely within
libxl. The existing libxl event API is a bit of a mess but I think if it
were cleaned up (IanJ has a plan I think) then it would be the right
place to integrate the libxl and caller event loops.
For the time being though I think libxl should provide the fd and not
expect the caller to construct the path and open it etc. IOW
libxl_qmp_initialize should not take a socket option, it should
construct the path, do the open internally and return the fd.
> - ret = select(fd + 1, &rfds, NULL, NULL, NULL);
> + ret = select(fd > qmp_fd ? fd + 1 : qmp_fd + 1, &rfds, NULL, NULL,
> NULL);
> if (!ret)
> continue;
> + if (FD_ISSET(fd, &rfds)) {
> libxl_get_event(ctx, &event);
> switch (event.type) {
> case LIBXL_EVENT_TYPE_DOMAIN_DEATH:
> @@ -1687,6 +1706,10 @@ start:
> break;
> }
> libxl_free_event(&event);
> + }
> + if (FD_ISSET(qmp_fd, &rfds)) {
> + libxl_qmp_do_next(qmp_handler);
> + }
Looks like some re-indentation is needed in these two hunks?
> }
>
> error_out:
> @@ -1697,6 +1720,10 @@ error_out:
> out:
> if (logfile != 2)
> close(logfile);
> + if (qmp_handler) {
> + libxl_qmp_close(qmp_handler);
> + qmp_handler = NULL;
> + }
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] [PATCH] libxl, Introduce a QMP client, anthony.perard
- [Xen-devel] Re: [PATCH] libxl, Introduce a QMP client,
Ian Campbell <=
- Re: [Xen-devel] Re: [PATCH] libxl, Introduce a QMP client, Anthony PERARD
- [Xen-devel] Re: [PATCH] libxl, Introduce a QMP client, Stefano Stabellini
- [Xen-devel] Re: [PATCH] libxl, Introduce a QMP client, Ian Campbell
- Re: [Xen-devel] Re: [PATCH] libxl, Introduce a QMP client, Anthony PERARD
- Re: [Xen-devel] Re: [PATCH] libxl, Introduce a QMP client, Stefano Stabellini
- Re: [Xen-devel] Re: [PATCH] libxl, Introduce a QMP client, Ian Campbell
- Re: [Xen-devel] Re: [PATCH] libxl, Introduce a QMP client, Anthony PERARD
- Re: [Xen-devel] Re: [PATCH] libxl, Introduce a QMP client, Stefano Stabellini
|
|
|