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 v8 00/11] toolstack-assisted approach to PVHVM guest kexec
Date: Tue, 23 Jun 2015 18:11:42 +0200 [thread overview]
Message-ID: <1435075913-335-1-git-send-email-vkuznets@redhat.com> (raw)
This patch series provides x86 PVHVM domains with an ability to perform
kexec/kdump-style operations.
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.
Patches from 'toolstack-based' series:
- "[PATCH v8 01/11] xen: introduce SHUTDOWN_soft_reset shutdown reason"
- "[PATCH v8 02/11] libxl: support SHUTDOWN_soft_reset shutdown reason" (with Ian's ack)
- "[PATCH v8 03/11] xl: introduce enum domain_restart_type" (with Ian's ack)
- "[PATCH v8 10/11] libxc: add XC_DEVICE_MODEL_SAVE_FILE" (with Ian's ack)
- "[PATCH v8 11/11] (lib)xl: soft reset support" (heavily rewritten)
Patches from 'reset everything' RFC:
- "[PATCH v8 04/11] xen: evtchn: make evtchn_reset() ready for soft reset"
- "[PATCH v8 06/11] xen: Introduce XEN_DOMCTL_soft_reset"
- "[PATCH v8 08/11] xen: arch-specific hooks for domain_soft_reset()"
New patches:
- "[PATCH v8 05/11] xen: grant_table: implement grant_table_warn_active_grants()"
- "[PATCH v8 07/11] flask: DOMCTL_soft_reset support"
- "[PATCH v8 09/11] libxc: support XEN_DOMCTL_soft_reset operation"
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. It can be easily dropped from this series.
Some changes are mentioned in individual patches.
v7 of the 'toolstack-based approach to pvhvm guest kexec' is available here:
http://lists.xenproject.org/archives/html/xen-devel/2015-05/msg03558.html
RFC of the 'reset everything approach to PVHVM guest kexec' is available here:
http://lists.xenproject.org/archives/html/xen-devel/2015-06/msg00446.html
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 | 16 ++-
tools/libxl/libxl.h | 12 ++
tools/libxl/libxl_create.c | 181 +++++++++++++++++++++++----
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 | 79 ++++++++++++
xen/arch/x86/hvm/hvm.c | 2 +-
xen/common/domain.c | 34 ++++-
xen/common/domctl.c | 9 ++
xen/common/event_channel.c | 38 +++---
xen/common/grant_table.c | 31 +++++
xen/common/shutdown.c | 6 +
xen/include/asm-x86/hvm/hvm.h | 2 +
xen/include/public/domctl.h | 1 +
xen/include/public/sched.h | 3 +-
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, 470 insertions(+), 68 deletions(-)
--
2.4.2
next reply other threads:[~2015-06-23 16:12 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-23 16:11 Vitaly Kuznetsov [this message]
2015-06-23 16:11 ` [PATCH v8 01/11] xen: introduce SHUTDOWN_soft_reset shutdown reason Vitaly Kuznetsov
2015-07-07 20:44 ` Konrad Rzeszutek Wilk
2015-07-14 16:10 ` Ian Jackson
2015-07-15 8:42 ` Vitaly Kuznetsov
2015-06-23 16:11 ` [PATCH v8 02/11] libxl: support " Vitaly Kuznetsov
2015-07-07 20:47 ` Konrad Rzeszutek Wilk
2015-07-14 16:15 ` Ian Jackson
2015-07-15 8:43 ` Vitaly Kuznetsov
2015-06-23 16:11 ` [PATCH v8 03/11] xl: introduce enum domain_restart_type Vitaly Kuznetsov
2015-07-07 20:48 ` Konrad Rzeszutek Wilk
2015-06-23 16:11 ` [PATCH v8 04/11] xen: evtchn: make evtchn_reset() ready for soft reset Vitaly Kuznetsov
2015-07-10 16:20 ` Konrad Rzeszutek Wilk
2015-06-23 16:11 ` [PATCH v8 05/11] xen: grant_table: implement grant_table_warn_active_grants() Vitaly Kuznetsov
2015-07-10 16:24 ` Konrad Rzeszutek Wilk
2015-07-13 8:45 ` Jan Beulich
2015-07-13 9:08 ` Ian Campbell
2015-07-13 9:30 ` Jan Beulich
2015-07-13 9:35 ` Vitaly Kuznetsov
2015-07-13 13:44 ` Vitaly Kuznetsov
2015-07-13 14:24 ` Konrad Rzeszutek Wilk
2015-06-23 16:11 ` [PATCH v8 06/11] xen: Introduce XEN_DOMCTL_soft_reset Vitaly Kuznetsov
2015-07-10 16:30 ` Konrad Rzeszutek Wilk
2015-06-23 16:11 ` [PATCH v8 07/11] flask: DOMCTL_soft_reset support Vitaly Kuznetsov
2015-07-13 19:43 ` Daniel De Graaf
2015-06-23 16:11 ` [PATCH v8 08/11] xen: arch-specific hooks for domain_soft_reset() Vitaly Kuznetsov
2015-07-10 16:54 ` Konrad Rzeszutek Wilk
2015-07-14 15:52 ` Vitaly Kuznetsov
2015-07-14 15:57 ` Konrad Rzeszutek Wilk
2015-07-14 16:07 ` Vitaly Kuznetsov
2015-07-15 20:19 ` Julien Grall
2015-07-16 11:36 ` Vitaly Kuznetsov
2015-07-16 11:57 ` Julien Grall
2015-06-23 16:11 ` [PATCH v8 09/11] libxc: support XEN_DOMCTL_soft_reset operation Vitaly Kuznetsov
2015-06-25 13:52 ` Wei Liu
2015-07-10 16:55 ` Konrad Rzeszutek Wilk
2015-07-14 16:17 ` Ian Jackson
2015-06-23 16:11 ` [PATCH v8 10/11] libxc: add XC_DEVICE_MODEL_SAVE_FILE Vitaly Kuznetsov
2015-06-23 16:11 ` [PATCH v8 11/11] (lib)xl: soft reset support Vitaly Kuznetsov
2015-07-10 16:59 ` Konrad Rzeszutek Wilk
2015-07-14 16:19 ` Ian Jackson
2015-07-15 8:50 ` 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=1435075913-335-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).