mbox series

[v10,00/11] domain context infrastructure

Message ID 20201008185735.29875-1-paul@xen.org (mailing list archive)
Headers show
Series domain context infrastructure | expand

Message

Paul Durrant Oct. 8, 2020, 6:57 p.m. UTC
From: Paul Durrant <pdurrant@amazon.com>

Paul Durrant (11):
  docs / include: introduce a new framework for 'domain context' records
  xen: introduce implementation of save/restore of 'domain context'
  xen/common/domctl: introduce XEN_DOMCTL_get/set_domain_context
  tools/misc: add xen-domctx to present domain context
  common/domain: add a domain context record for shared_info...
  x86/time: add a domain context record for tsc_info...
  docs/specs: add missing definitions to libxc-migration-stream
  docs / tools: specify migration v4 to include DOMAIN_CONTEXT
  tools/python: modify libxc.py to verify v4 stream
  tools/libs/guest: add code to restore a v4 libxc stream
  tools/libs/guest: add code to save a v4 libxc stream

 .gitignore                               |   1 +
 docs/specs/domain-context.md             | 198 +++++++++++++
 docs/specs/libxc-migration-stream.pandoc |  69 ++++-
 tools/flask/policy/modules/xen.if        |   4 +-
 tools/libs/ctrl/include/xenctrl.h        |   5 +
 tools/libs/ctrl/xc_domain.c              |  56 ++++
 tools/libs/guest/xg_sr_common.c          |   1 +
 tools/libs/guest/xg_sr_common.h          |   3 +
 tools/libs/guest/xg_sr_common_x86.c      |  20 --
 tools/libs/guest/xg_sr_common_x86.h      |   6 -
 tools/libs/guest/xg_sr_restore.c         |  24 +-
 tools/libs/guest/xg_sr_restore_x86_hvm.c |   9 +
 tools/libs/guest/xg_sr_restore_x86_pv.c  |   9 +
 tools/libs/guest/xg_sr_save.c            |  52 +++-
 tools/libs/guest/xg_sr_save_x86_hvm.c    |   5 -
 tools/libs/guest/xg_sr_save_x86_pv.c     |  22 --
 tools/libs/guest/xg_sr_stream_format.h   |   1 +
 tools/misc/Makefile                      |   4 +
 tools/misc/xen-domctx.c                  | 264 ++++++++++++++++++
 tools/python/xen/migration/libxc.py      |  22 +-
 xen/arch/x86/time.c                      |  30 ++
 xen/common/Makefile                      |   1 +
 xen/common/domain.c                      | 113 ++++++++
 xen/common/domctl.c                      | 173 ++++++++++++
 xen/common/save.c                        | 339 +++++++++++++++++++++++
 xen/include/public/arch-arm/hvm/save.h   |   5 +
 xen/include/public/arch-x86/hvm/save.h   |   5 +
 xen/include/public/domctl.h              |  39 +++
 xen/include/public/save.h                |  85 ++++++
 xen/include/xen/save.h                   | 160 +++++++++++
 xen/xsm/flask/hooks.c                    |   6 +
 xen/xsm/flask/policy/access_vectors      |   4 +
 32 files changed, 1661 insertions(+), 74 deletions(-)
 create mode 100644 docs/specs/domain-context.md
 create mode 100644 tools/misc/xen-domctx.c
 create mode 100644 xen/common/save.c
 create mode 100644 xen/include/public/save.h
 create mode 100644 xen/include/xen/save.h
---
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Cc: George Dunlap <george.dunlap@citrix.com>
Cc: Ian Jackson <iwj@xenproject.org>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien@xen.org>
Cc: "Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com>
Cc: "Roger Pau Monné" <roger.pau@citrix.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Cc: Wei Liu <wl@xen.org>

Comments

Andrew Cooper Jan. 25, 2021, 8:15 p.m. UTC | #1
On 08/10/2020 19:57, Paul Durrant wrote:
> From: Paul Durrant <pdurrant@amazon.com>
>
> Paul Durrant (11):
>   docs / include: introduce a new framework for 'domain context' records
>   xen: introduce implementation of save/restore of 'domain context'
>   xen/common/domctl: introduce XEN_DOMCTL_get/set_domain_context
>   tools/misc: add xen-domctx to present domain context
>   common/domain: add a domain context record for shared_info...
>   x86/time: add a domain context record for tsc_info...
>   docs/specs: add missing definitions to libxc-migration-stream
>   docs / tools: specify migration v4 to include DOMAIN_CONTEXT
>   tools/python: modify libxc.py to verify v4 stream
>   tools/libs/guest: add code to restore a v4 libxc stream
>   tools/libs/guest: add code to save a v4 libxc stream

Thanks - this is much better when it comes to the public API/ABI.

However, my concerns still stands.  What *else* is going in the domain
context record, because you can pull the "bump the interface version and
deprecated new fields" exactly once, as the libxg logic doesn't delve
into domain context stream.

At the moment this does increase the downtime of the VM for no gain. 
What I'm trying to understand is whether this is "no gain (yet)" or
whether you consider this "done" as far as cooperative migrate is concerned.

~Andrew