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

[Xen-devel] [PATCH v6 00/10] toolstack-based approach to pvhvm guest kexec

This patch series provides x86 PVHVM domains with an ability to perform

The main change in v6 is the XEN_DOMCTL_devour -> XENMEM_soft_reset change of
the newly introduced hypercall. This change was made because of two main
1) Make it ARM-friendly by eliminating the mfn_to_gmfn() call (as m2p does not
   exist on ARM).
2) To support PoD guests we need to set some entries as PoD in the p2m and this
   is impossible with the 'XEN_DOMCTL_devour' approach when we reassign pages
   when they are freed as we don't free non-existent pages.

Changes/comments grouped by the reviewer name:

Olaf Hering:
- PoD guests now work and no special guest code is required. Ballooned out
  pages are not supposed to be a problem for kexec any more.

Ian Campbell:
- Changing the nature of the hypercall to make it ARM-friendly and eliminate
  'wait for the original domain to die' from xc_domain_soft_reset().
- Add commit message to the "xen: introduce SHUTDOWN_soft_reset shutdown
  reason" patch.
- Use 'S' instead of 't' to indicate a domain in the 'soft reset' state.
- libxl__domain_soft_reset_destroy() is gone.
- INVALID_DOMID define migrated to libxl_internal.h. We don't need it to be the
  same with the one from xl_cmdimpl.c and it doesn't cross libxl library
  boundary, it is just a convenience.
- introduce enum domain_restart_type.
- other minor fixes.
- [not fixed] xc_domain_soft_reset() still gets and sets all HVM params
  sequentially. This is in line with current migration code and Andrew's
  'migration v2' work. In general I agree we can do better by introducing
  a new pair of hypercalls to get/set all HVM params at once but I'd like
  to suggest we leave this change out of scope of this series. Using the
  sequential approach has definitely lower risk for soft reset than for
  migration as we can migrate live and the domain performing soft reset is
  almost dead. Please let me know your thoughts.

Jan Beulich:
- Rewrite commit message describing DOMDYING_locked state.
- Rewrite the message in hwdom_shutdown()

Since the change is significant some of the review comments from v5 are now
irrelevant and the overall quality of the series could have dropped. It's also
been awhile since the v5. I'd like to apologize for all that.

v5 and all the history of the series is available here:

Vitaly Kuznetsov (10):
  xen: introduce SHUTDOWN_soft_reset shutdown reason
  libxl: support SHUTDOWN_soft_reset shutdown reason
  xen: introduce DOMDYING_locked state
  xen: Introduce XENMEM_soft_reset operation
  xsm: add XENMEM_soft_reset support
  libxc: support XENMEM_soft_reset operation
  libxc: introduce soft reset for HVM domains
  xl: introduce enum domain_restart_type
  (lib)xl: soft reset support

 docs/man/xl.cfg.pod.5                        |  12 ++
 tools/flask/policy/policy/modules/xen/xen.if |   2 +-
 tools/libxc/Makefile                         |   1 +
 tools/libxc/include/xenctrl.h                |   5 +
 tools/libxc/include/xenguest.h               |  21 +++
 tools/libxc/xc_domain.c                      |  18 ++
 tools/libxc/xc_domain_soft_reset.c           | 272 +++++++++++++++++++++++++++
 tools/libxl/libxl.c                          |   4 +
 tools/libxl/libxl.h                          |  13 ++
 tools/libxl/libxl_create.c                   | 121 +++++++++++-
 tools/libxl/libxl_dm.c                       |   2 +-
 tools/libxl/libxl_internal.h                 |  26 +++
 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/common/domain.c                          |   1 +
 xen/common/memory.c                          | 236 +++++++++++++++++++++++
 xen/common/shutdown.c                        |   6 +
 xen/include/public/memory.h                  |  34 +++-
 xen/include/public/sched.h                   |   3 +-
 xen/include/xen/sched.h                      |   3 +-
 xen/include/xsm/dummy.h                      |   7 +
 xen/include/xsm/xsm.h                        |   7 +
 xen/xsm/dummy.c                              |   1 +
 xen/xsm/flask/hooks.c                        |  12 ++
 xen/xsm/flask/policy/access_vectors          |   4 +
 27 files changed, 851 insertions(+), 30 deletions(-)
 create mode 100644 tools/libxc/xc_domain_soft_reset.c


Xen-devel mailing list



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