From: Vitaly Kuznetsov <vkuznets@redhat.com>
To: xen-devel@lists.xenproject.org
Cc: Andrew Jones <drjones@redhat.com>,
Julien Grall <julien.grall@linaro.org>,
Keir Fraser <keir@xen.org>,
Ian Campbell <ian.campbell@citrix.com>,
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>, Wei Liu <wei.liu2@citrix.com>,
Daniel De Graaf <dgdegra@tycho.nsa.gov>
Subject: [PATCH v10 00/11] toolstack-assisted approach to PVHVM guest kexec
Date: Tue, 28 Jul 2015 15:28:05 +0200 [thread overview]
Message-ID: <1438090096-8297-1-git-send-email-vkuznets@redhat.com> (raw)
This patch series provides x86 PVHVM domains with an ability to perform
kexec/kdump-style operations.
Changes since v9 (also mentioned in individual patches) grouped by reviewer's
name:
[Konrad Rzeszutek Wilk]
- PATCH 01: add Reviewed-by:
- PATCH 04: add Reviewed-by:
- PATCH 05: add Reviewed-by:
- PATCH 06: Unlock shutdown_lock on !v->paused_for_shutdown check failure.
- PATCH 11:
- s,reset,Reset, in xl.cfg.pod.5
- full stops in comments/log messages.
- reword the need to remove the domain from xs/
[Jan Beulich]
- PATCH 01: minor comment change, add Acked-by:
- PATCH 04: add Acked-by:
- PATCH 05: do not break format lines, add Acked-by:
- PATCH 06: add Acked-by:
- PATCH 08:
- is_hvm_domain() -> has_hvm_container_domain()
- introduce hvm_domain_soft_reset()
- ASSERT( owner == d )
- crash the domain when arch-specific hook fails.
- eliminate mfn_new variable.
The whole series wa rebased on top of current staging tree, several minor
adjustments were made to PATCH 11 to adapt to Andrew's changes.
Currently non-acked patches are: PATCH 02 and 11 (libxl), PATCH 08 (xen).
Original description:
The list of currently known issues blocking kexec (and why the series is
required) is:
- Bound event channels.
- Registered vcpu_info.
- PIRQ/emuirq mappings.
- shared_info frame after XENMAPSPACE_shared_info operation.
- Active grant mappings.
Previously there were several attempts to solve these issues in different ways:
- Individual 'shutdown' hypercalls (e.g. VCPUOP_reset_vcpu_info) (we agreed
that one 'reset everything' hypercall is better).
- Try building new domain reassigning old domain's memory (memory reassignment
turned out being too cumbersome).
- Toolstack-less 'reset everything' (turned out being impossible because there
is not enough knowledge in the hypervisor, e.g. interdomain channels are
being set up by the toolstack).
This series is a mix of the previously sent 'toolstack-based' and
'reset everything' series. Here are some key points:
- No new domain is created.
- Domain is asking for soft reset with SCHEDOP_shutdown with
SHUTDOWN_soft_reset shutdown reason.
- XEN_DOMCTL_soft_reset is being called by the toolstack.
- Device model is being restarted.
With regards to active grants. In this series we restart domain's device model,
remove it from xenstore and introduce it back. The only 'misbehaving' backend
keeping active mapping I currently observe is xenconsoled: currently it has no
interface to disconnect from a domain (it just periodically scans all domains
to determine if any of them are dead). This is not an issue for us because:
- This matches standard domain startup as this grant mapping is being set up by
the toolstack.
- Guest domain is aware of this special page.
grant_table_warn_active_grants() is required to find possible misbehaving
backends in future.
v9 of the 'toolstack-assisted approach to pvhvm guest kexec' is available here:
http://lists.xen.org/archives/html/xen-devel/2015-07/msg03377.html
Vitaly Kuznetsov (11):
xen: introduce SHUTDOWN_soft_reset shutdown reason
libxl: support SHUTDOWN_soft_reset shutdown reason
xl: introduce enum domain_restart_type
xen: evtchn: make evtchn_reset() ready for soft reset
xen: grant_table: implement grant_table_warn_active_grants()
xen: Introduce XEN_DOMCTL_soft_reset
flask: DOMCTL_soft_reset support
xen: arch-specific hooks for domain_soft_reset()
libxc: support XEN_DOMCTL_soft_reset operation
libxc: add XC_DEVICE_MODEL_SAVE_FILE
(lib)xl: soft reset support
docs/man/xl.cfg.pod.5 | 10 ++
tools/flask/policy/policy/modules/xen/xen.if | 2 +-
tools/libxc/include/xenctrl.h | 3 +
tools/libxc/include/xenguest.h | 2 +
tools/libxc/xc_domain.c | 9 ++
tools/libxl/libxl.c | 23 +++-
tools/libxl/libxl.h | 15 +++
tools/libxl/libxl_create.c | 195 ++++++++++++++++++++++++---
tools/libxl/libxl_dm.c | 2 +-
tools/libxl/libxl_internal.h | 4 +
tools/libxl/libxl_types.idl | 4 +
tools/libxl/xl.h | 7 +
tools/libxl/xl_cmdimpl.c | 58 +++++---
tools/python/xen/lowlevel/xl/xl.c | 1 +
xen/arch/arm/domain.c | 5 +
xen/arch/x86/domain.c | 81 +++++++++++
xen/arch/x86/hvm/hvm.c | 5 +
xen/common/domain.c | 54 ++++++--
xen/common/domctl.c | 9 ++
xen/common/event_channel.c | 43 +++---
xen/common/grant_table.c | 35 +++++
xen/common/shutdown.c | 6 +
xen/include/asm-x86/hvm/hvm.h | 1 +
xen/include/public/domctl.h | 1 +
xen/include/public/sched.h | 11 +-
xen/include/xen/domain.h | 2 +
xen/include/xen/event.h | 3 +
xen/include/xen/grant_table.h | 5 +
xen/include/xen/sched.h | 2 +
xen/xsm/flask/hooks.c | 3 +
xen/xsm/flask/policy/access_vectors | 2 +
31 files changed, 527 insertions(+), 76 deletions(-)
--
2.4.3
next reply other threads:[~2015-07-28 13:28 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-28 13:28 Vitaly Kuznetsov [this message]
2015-07-28 13:28 ` [PATCH v10 01/11] xen: introduce SHUTDOWN_soft_reset shutdown reason Vitaly Kuznetsov
2015-07-28 13:28 ` [PATCH v10 02/11] libxl: support " Vitaly Kuznetsov
2015-08-11 19:54 ` Konrad Rzeszutek Wilk
2015-08-31 14:04 ` Wei Liu
2015-07-28 13:28 ` [PATCH v10 03/11] xl: introduce enum domain_restart_type Vitaly Kuznetsov
2015-07-28 13:28 ` [PATCH v10 04/11] xen: evtchn: make evtchn_reset() ready for soft reset Vitaly Kuznetsov
2015-07-28 13:28 ` [PATCH v10 05/11] xen: grant_table: implement grant_table_warn_active_grants() Vitaly Kuznetsov
2015-07-28 13:28 ` [PATCH v10 06/11] xen: Introduce XEN_DOMCTL_soft_reset Vitaly Kuznetsov
2015-08-11 19:57 ` Konrad Rzeszutek Wilk
2015-08-12 8:41 ` Jan Beulich
2015-08-12 9:19 ` Vitaly Kuznetsov
2015-08-12 9:43 ` Jan Beulich
2015-07-28 13:28 ` [PATCH v10 07/11] flask: DOMCTL_soft_reset support Vitaly Kuznetsov
2015-07-28 13:28 ` [PATCH v10 08/11] xen: arch-specific hooks for domain_soft_reset() Vitaly Kuznetsov
2015-08-11 19:59 ` Konrad Rzeszutek Wilk
2015-08-17 15:38 ` Jan Beulich
2015-09-01 16:10 ` Ian Campbell
2015-07-28 13:28 ` [PATCH v10 09/11] libxc: support XEN_DOMCTL_soft_reset operation Vitaly Kuznetsov
2015-07-28 13:28 ` [PATCH v10 10/11] libxc: add XC_DEVICE_MODEL_SAVE_FILE Vitaly Kuznetsov
2015-07-28 13:28 ` [PATCH v10 11/11] (lib)xl: soft reset support Vitaly Kuznetsov
2015-08-11 20:04 ` Konrad Rzeszutek Wilk
2015-08-31 14:14 ` Wei Liu
2015-09-01 11:52 ` Vitaly Kuznetsov
2015-09-01 17:26 ` Vitaly Kuznetsov
2015-09-01 17:30 ` Wei Liu
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=1438090096-8297-1-git-send-email-vkuznets@redhat.com \
--to=vkuznets@redhat.com \
--cc=andrew.cooper3@citrix.com \
--cc=david.vrabel@citrix.com \
--cc=dgdegra@tycho.nsa.gov \
--cc=drjones@redhat.com \
--cc=ian.campbell@citrix.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=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).