All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Campbell <ian.campbell@citrix.com>
To: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: Wei Liu <wei.liu2@citrix.com>, Andrew Jones <drjones@redhat.com>,
	Keir Fraser <keir@xen.org>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	Julien Grall <julien.grall@linaro.org>,
	Ian Jackson <ian.jackson@eu.citrix.com>,
	Olaf Hering <olaf@aepfle.de>, Tim Deegan <tim@xen.org>,
	David Vrabel <david.vrabel@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	xen-devel@lists.xenproject.org,
	Daniel De Graaf <dgdegra@tycho.nsa.gov>
Subject: Re: [PATCH v7 10/10] (lib)xl: soft reset support
Date: Tue, 2 Jun 2015 16:25:09 +0100	[thread overview]
Message-ID: <1433258709.15036.322.camel@citrix.com> (raw)
In-Reply-To: <1432740346-7887-11-git-send-email-vkuznets@redhat.com>

On Wed, 2015-05-27 at 17:25 +0200, Vitaly Kuznetsov wrote:
> Perform soft reset when a domain did SHUTDOWN_soft_reset. Migrate the
> content with xc_domain_soft_reset(), reload dm and toolstack.
> 
> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
> ---
> Changes in v7:
> - Save toolstack earlier.
> - Introduce LIBXL_HAVE_SOFT_RESET [Wei Liu]
> ---
>  docs/man/xl.cfg.pod.5        |  12 +++++
>  tools/libxl/libxl.c          |   4 ++
>  tools/libxl/libxl.h          |  14 +++++
>  tools/libxl/libxl_create.c   | 119 +++++++++++++++++++++++++++++++++++++++----
>  tools/libxl/libxl_internal.h |  26 ++++++++++
>  tools/libxl/libxl_types.idl  |   3 ++
>  tools/libxl/xl.h             |   1 +
>  tools/libxl/xl_cmdimpl.c     |  33 +++++++++++-
>  8 files changed, 201 insertions(+), 11 deletions(-)
> 
> diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5
> index 8e4154f..ced5cc0 100644
> --- a/docs/man/xl.cfg.pod.5
> +++ b/docs/man/xl.cfg.pod.5
> @@ -368,6 +368,13 @@ destroy the domain.
>  write a "coredump" of the domain to F</var/xen/dump/NAME> and then
>  restart the domain.
>  
> +=item B<soft-reset>
> +
> +create a new domain with the same configuration, reassign all the domain's
> +memory to this new domain, kill the original domain, and continue execution

s/this/a/ I think?

> @@ -1529,20 +1545,67 @@ static void domcreate_destruction_cb(libxl__egc *egc,
>  typedef struct {
>      libxl__domain_create_state dcs;
>      uint32_t *domid_out;
> +    libxl__domain_destroy_state dds;
> +    uint8_t *toolstack_buf;
> +    uint32_t toolstack_len;

I think a libxl__domain_soft_reset_state would be appropriate here,
perhaps containing the app_domain_create_state rather than adding all
the fields next to it.

>  } libxl__app_domain_create_state;
> [...]
> @@ -1550,12 +1613,34 @@ static int do_domain_create(libxl_ctx *ctx, libxl_domain_config *d_config,
>      libxl_domain_config_init(&cdcs->dcs.guest_config_saved);
>      libxl_domain_config_copy(ctx, &cdcs->dcs.guest_config_saved, d_config);
>      cdcs->dcs.restore_fd = restore_fd;
> +    cdcs->dcs.domid_soft_reset = domid_soft_reset;
>      cdcs->dcs.callback = domain_create_cb;
>      cdcs->dcs.checkpointed_stream = checkpointed_stream;
>      libxl__ao_progress_gethow(&cdcs->dcs.aop_console_how, aop_console_how);
>      cdcs->domid_out = domid;

Since the backend of this function has very little in common between the
create and soft/reset cases, perhaps refactor the first half into a new
function to initialise a cdcs to be called by do_domain_create and the
soft reset function, the latter of which would go on to do the body of
the following if here.

Ian.

  reply	other threads:[~2015-06-02 15:25 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-27 15:25 [PATCH v7 00/10] toolstack-based approach to pvhvm guest kexec Vitaly Kuznetsov
2015-05-27 15:25 ` [PATCH v7 01/10] xen: introduce SHUTDOWN_soft_reset shutdown reason Vitaly Kuznetsov
2015-05-27 15:25 ` [PATCH v7 02/10] libxl: support " Vitaly Kuznetsov
2015-06-02 14:58   ` Ian Campbell
2015-05-27 15:25 ` [PATCH v7 03/10] xen: introduce DOMDYING_locked state Vitaly Kuznetsov
2015-05-27 15:25 ` [PATCH v7 04/10] xen: Introduce XEN_DOMCTL_soft_reset Vitaly Kuznetsov
2015-05-28 10:06   ` Tim Deegan
2015-05-28 11:56     ` Vitaly Kuznetsov
2015-05-28 12:52       ` Tim Deegan
2015-05-28 13:11         ` Vitaly Kuznetsov
2015-05-28 13:37           ` Tim Deegan
2015-05-28 13:53             ` Vitaly Kuznetsov
2015-05-28 15:02               ` Jan Beulich
2015-05-27 15:25 ` [PATCH v7 05/10] xsm: add XEN_DOMCTL_soft_reset support Vitaly Kuznetsov
2015-05-27 20:22   ` Daniel De Graaf
2015-05-29 16:16   ` Jan Beulich
2015-05-27 15:25 ` [PATCH v7 06/10] libxc: support XEN_DOMCTL_soft_reset operation Vitaly Kuznetsov
2015-06-02 15:00   ` Ian Campbell
2015-05-27 15:25 ` [PATCH v7 07/10] libxc: introduce soft reset for HVM domains Vitaly Kuznetsov
2015-06-02 15:09   ` Ian Campbell
2015-05-27 15:25 ` [PATCH v7 08/10] xl: introduce enum domain_restart_type Vitaly Kuznetsov
2015-06-02 15:11   ` Ian Campbell
2015-05-27 15:25 ` [PATCH v7 09/10] libxc: add XC_DEVICE_MODEL_SAVE_FILE Vitaly Kuznetsov
2015-06-02 15:12   ` Ian Campbell
2015-05-27 15:25 ` [PATCH v7 10/10] (lib)xl: soft reset support Vitaly Kuznetsov
2015-06-02 15:25   ` Ian Campbell [this message]
2015-05-28 12:20 ` [PATCH v7 00/10] toolstack-based approach to pvhvm guest kexec Jan Beulich
2015-05-28 12:27   ` Vitaly Kuznetsov
2015-05-28 13:05     ` Jan Beulich
2015-05-28 13:41       ` Vitaly Kuznetsov
2015-06-02 14:58         ` Ian Campbell
2015-06-02 16:26           ` Vitaly Kuznetsov

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=1433258709.15036.322.camel@citrix.com \
    --to=ian.campbell@citrix.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=david.vrabel@citrix.com \
    --cc=dgdegra@tycho.nsa.gov \
    --cc=drjones@redhat.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=jbeulich@suse.com \
    --cc=julien.grall@linaro.org \
    --cc=keir@xen.org \
    --cc=olaf@aepfle.de \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=tim@xen.org \
    --cc=vkuznets@redhat.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.