xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v8 00/11] toolstack-assisted approach to PVHVM guest kexec
@ 2015-06-23 16:11 Vitaly Kuznetsov
  2015-06-23 16:11 ` [PATCH v8 01/11] xen: introduce SHUTDOWN_soft_reset shutdown reason Vitaly Kuznetsov
                   ` (10 more replies)
  0 siblings, 11 replies; 42+ messages in thread
From: Vitaly Kuznetsov @ 2015-06-23 16:11 UTC (permalink / raw)
  To: xen-devel
  Cc: Andrew Jones, Julien Grall, Keir Fraser, Ian Campbell,
	Stefano Stabellini, Andrew Cooper, Ian Jackson, Olaf Hering,
	Tim Deegan, David Vrabel, Jan Beulich, Wei Liu, Daniel De Graaf

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

^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2015-07-16 11:57 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-23 16:11 [PATCH v8 00/11] toolstack-assisted approach to PVHVM guest kexec Vitaly Kuznetsov
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

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).