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>,
	Julien Grall <julien.grall@linaro.org>,
	Keir Fraser <keir@xen.org>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	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
Subject: Re: [PATCH v5 7/9] libxc: introduce soft reset for HVM domains
Date: Tue, 13 Jan 2015 14:08:34 +0000	[thread overview]
Message-ID: <1421158114.19103.73.camel@citrix.com> (raw)
In-Reply-To: <1418305541-5135-8-git-send-email-vkuznets@redhat.com>

On Thu, 2014-12-11 at 14:45 +0100, Vitaly Kuznetsov wrote:
> Add new xc_domain_soft_reset() function which performs so-called 'soft reset'
> for an HVM domain. It is being performed in the following way:
> - Save HVM context and all HVM params;
> - Devour original domain with XEN_DOMCTL_devour;
> - Wait till original domain dies or has no pages left;
> - Restore HVM context, HVM params, seed grant table.

Are any of these operations "slow", per the definition under 'Machinery
for asynchronous operations ("ao")' in libxl_internal.h? "Wait till
original domain dies" sounds like it might be.

That might have implications for the use of this functionality from
libxl.

> +    xc_hvm_param_get(xch, source_dom, HVM_PARAM_IDENT_PT,
> +                     &hvm_params[HVM_PARAM_IDENT_PT]);

There's quite a risk of the set of HVM parameters retrieved getting out
of sync, either with the hypervisor or with the sets done below.

I don't know if any part of the migration infrastructure (specifically
Andy Cooper's v2 stuff, or some of the underlying hypercalls) could be
reused here to pickle/unpickle the state?

Other possibilities:

A new hypercall pair to get/set all hvm params.

An list of params to save/restore locally here, which would at least
stop the get/set parts gettuing out of sync, but doesn't help with the
hypervisor getting out of sync (and therefore would not be my preferred
solution).

Also this function needs to take arch specifics into account.

> +    while ( 1 )
> +    {
> +        sleep(SLEEP_INT);
> +        if ( xc_get_tot_pages(xch, source_dom) <= 0 )
> +        {
> +            DPRINTF("All pages were transferred");
> +            break;
> +        }
> +    }

I think we are going to need to find a better solution than this.

Changing the nature of the hypercall as I suggested in a previous reply
would also remove this, so I'll wait for a verdict on that before
worrying about this bit any further.
> [...]

> +            PERROR("Faled to perform soft reset, destroying domain %d",

"Failed"

Ian.

  reply	other threads:[~2015-01-13 14:09 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-11 13:45 [PATCH v5 0/9] toolstack-based approach to pvhvm guest kexec Vitaly Kuznetsov
2014-12-11 13:45 ` [PATCH v5 1/9] xen: introduce DOMDYING_locked state Vitaly Kuznetsov
2014-12-18 13:23   ` Jan Beulich
2014-12-11 13:45 ` [PATCH v5 2/9] xen: introduce SHUTDOWN_soft_reset shutdown reason Vitaly Kuznetsov
2014-12-18 13:28   ` Jan Beulich
2015-01-13 12:20   ` Ian Campbell
2014-12-11 13:45 ` [PATCH v5 3/9] libxl: support " Vitaly Kuznetsov
2015-01-13 12:22   ` Ian Campbell
2015-01-13 12:23   ` Ian Campbell
2014-12-11 13:45 ` [PATCH v5 4/9] xen: introduce XEN_DOMCTL_devour Vitaly Kuznetsov
2014-12-18 13:57   ` Jan Beulich
2015-01-13 12:26     ` Ian Campbell
2015-01-13 13:53   ` Ian Campbell
2015-01-13 14:48     ` Tim Deegan
2015-01-13 16:17     ` Vitaly Kuznetsov
2015-01-13 16:24       ` Jan Beulich
2015-01-13 16:45         ` Vitaly Kuznetsov
2015-01-13 16:56           ` Jan Beulich
2015-01-13 16:41       ` Ian Campbell
2014-12-11 13:45 ` [PATCH v5 5/9] libxc: support XEN_DOMCTL_devour Vitaly Kuznetsov
2014-12-11 13:45 ` [PATCH v5 6/9] libxl: add libxl__domain_soft_reset_destroy() Vitaly Kuznetsov
2015-01-13 13:58   ` Ian Campbell
2014-12-11 13:45 ` [PATCH v5 7/9] libxc: introduce soft reset for HVM domains Vitaly Kuznetsov
2015-01-13 14:08   ` Ian Campbell [this message]
2014-12-11 13:45 ` [PATCH v5 8/9] libxl: soft reset support Vitaly Kuznetsov
2015-01-13 14:21   ` Ian Campbell
2014-12-11 13:45 ` [PATCH v5 9/9] xsm: add XEN_DOMCTL_devour support Vitaly Kuznetsov
2014-12-18 13:59   ` Jan Beulich
2015-01-05 12:46 ` [PATCH v5 0/9] toolstack-based approach to pvhvm guest kexec Wei Liu
2015-01-05 13:00   ` Vitaly Kuznetsov
2015-01-07  9:10     ` Olaf Hering
2015-01-07 10:41       ` David Vrabel
2015-01-07 10:54         ` Jan Beulich
2015-01-07 11:59           ` Vitaly Kuznetsov
2015-01-07 11:01         ` Olaf Hering
2015-01-13 12:18         ` Ian Campbell
2015-01-07 10:49       ` Vitaly Kuznetsov
2015-01-07 11:03         ` Olaf Hering
2015-01-14 11:06           ` George Dunlap

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=1421158114.19103.73.camel@citrix.com \
    --to=ian.campbell@citrix.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=david.vrabel@citrix.com \
    --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.