[PATCH v10 00/11] domain context infrastructure

Paul Durrant posted 11 patches 3 years, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/xen tags/patchew/20201008185735.29875-1-paul@xen.org
Maintainers: Wei Liu <wl@xen.org>, Ian Jackson <iwj@xenproject.org>, Stefano Stabellini <sstabellini@kernel.org>, George Dunlap <george.dunlap@citrix.com>, Jan Beulich <jbeulich@suse.com>, Julien Grall <julien@xen.org>, Andrew Cooper <andrew.cooper3@citrix.com>, Daniel De Graaf <dgdegra@tycho.nsa.gov>
.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
[PATCH v10 00/11] domain context infrastructure
Posted by Paul Durrant 3 years, 6 months ago
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>
-- 
2.20.1


Re: [PATCH v10 00/11] domain context infrastructure
Posted by Andrew Cooper 3 years, 2 months ago
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