[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v11 00/11] toolstack-assisted approach to PVHVM guest kexec



This patch series provides x86 PVHVM domains with an ability to perform
kexec/kdump-style operations.

Changes since v10 (also mentioned in individual patches) grouped by reviewer's
name:
[Wei Liu]
- PATCH 02: add Acked-by
- PATCH 11:
 - tested stubdom case (and fix minor glitches).
 - coding style fixes,  minor description change in xl.cfg.pod.5

[Konrad Rzeszutek Wilk]
- PATCH 02: add Reviewed-by:
- PATCH 06: return when evtchn_reset() fails
- PATCH 08: add Reviewed-by:

[Jan Beulich]
- PATCH 06: return when evtchn_reset() fails
- PATCH 08: add Acked-by:, minor code style change

[Ian Campbell]
- PATCH 08: add Acked-by: (ARM part)

Currently non-acked patch is only PATCH 11 (libxl).

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.

v10 of the 'toolstack-assisted approach to pvhvm guest kexec' is available here:
http://lists.xen.org/archives/html/xen-devel/2015-07/msg05054.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
  libxl: add LIBXL_DEVICE_MODEL_SAVE_FILE
  (lib)xl: soft reset support

 docs/man/xl.cfg.pod.5                        |  11 ++
 tools/flask/policy/policy/modules/xen/xen.if |   2 +-
 tools/libxc/include/xenctrl.h                |   3 +
 tools/libxc/xc_domain.c                      |   9 ++
 tools/libxl/libxl.c                          |  22 ++-
 tools/libxl/libxl.h                          |  15 +++
 tools/libxl/libxl_create.c                   | 192 ++++++++++++++++++++++++---
 tools/libxl/libxl_dm.c                       |   2 +-
 tools/libxl/libxl_internal.h                 |   5 +
 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                          |  53 ++++++--
 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 +
 30 files changed, 524 insertions(+), 74 deletions(-)

-- 
2.4.3


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.