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

[Xen-devel] [PATCH V5 00/32] JSON infrastructure, new "xl-json" format and domain configuration synchronization



This series contains all patches necessary to fully preserve domain
configurations across save / restore.

It's divided to several parts (see patch list):
1. first few patches are bugfixes, doc updates and prerequisite changes
2. JSON infrastructure to manipulate domain configuration
3. new "libxl-json" format
4. update stored domain configuration as we update runtime domain configs

I've run test-amd64-amd64-xl and test-amd64-amd64-xl-qemuu-debianhvm-amd64
in OSSTest standalone mode, this series passed both testcases. 

I've marked patch list with different legends for ease of review.
  A -- Acked
  C -- Changed since last round
  M -- Minor update, no functional change
  No marker -- New in this round

Wei.

Changes in V5:
* fix bugs in JSON generator and parser
* push vcpu affinity pinning to libxl
* don't generate default values in JSON output
* change JSON output to generate "keyvar.discriminator"
* synchronization now done in libxl

Changes in V4:
* minor bug fixes to parser
* push option parsing down to libxl level
* introduce deep copy functions
* handle domain configuration changes when setting memory targets
* handle domain configuration changes when plug / unplug device

Changes in V3:
* remove libxl__integer_parse_json and add functions for specific
  integer types
* relax some checkings on invalid inputs
* libxl__json_parse_callback now takes gc instead of ctx
* rewrite "allow basic JSON type objects generation"
* ... and address some other misc things mentioned by IanC

Changes in V2:
* address IanC's comments on JSON parser
* add "xl-json" format patch

Wei Liu (32):

PART 1:

    libxl: make cpupool_qualifier_to_cpupoolid a library function
 M  xl / libxl: push parsing of SSID and CPU pool ID down to libxl
    xl / libxl: push VCPU affinity pinning down to libxl
    libxl: libxl_uuid_copy now taks a ctx argument
    xl: remove parsing of "vncviewer" option in xl domain config file
 A  libxl: fix memory leak in libxl_cpuid_dispose
    libxl.h: document the paradigm of using libxl types
    libxl.h: document libxl_<type>_to_json
 C  libxl_internal.h: move / add some libxl defbool #define here
    libxl: fix JSON generator for uint64_t

PART 2:

 A  libxl IDL: rename json_fn to json_gen_fn
 A  libxl_json: introduce libxl__object_from_json
 A  libxl_internal: make JSON_* types a bit-field
 A  libxl_internal.h: introduce
      libxl__json_object_is_{null,number,double}
    libxl_internal.h: introduce libxl__json_object_get_number
 A  libxl_json: introduce parser functions for builtin types
 A  libxl_json: allow basic JSON type objects generation
    libxl/gentypes.py: special-case KeyedUnion map handle generation
    libxl/gentypes.py: don't generate default values
 C  libxl IDL: generate code to parse libxl__json_object to libxl_FOO
      struct
 A  libxl/gentest.py: test JSON parser
 M  libxl: introduce libxl_key_value_list_length
 M  libxl: introduce libxl_cpuid_policy_list_length
 C  libxl: copy function for builtin types
 C  libxl IDL: generate deep copy functions
 A  libxl/gentest.py: test deep copy functions

PART 3:

    libxl: libxl-json format and load/store configuration functions
    libxl: store up-to-date domain configuration as we create domain
    xl: use "libxl-json" format

PART 4:

 M  libxl: consider force removal of device successful
    libxl: update domain configuration when updating memory targets
    libxl: synchronize configuration when we plug / unplug device
  
 docs/man/xl.cfg.pod.5                |    4 -
 tools/libxl/gentest.py               |   64 +++++-
 tools/libxl/gentypes.py              |  259 ++++++++++++++++++++-
 tools/libxl/idl.py                   |   40 +++-
 tools/libxl/idl.txt                  |   21 +-
 tools/libxl/libxl.c                  |  364 +++++++++++++++++++++++++++---
 tools/libxl/libxl.h                  |   99 +++++++-
 tools/libxl/libxl_cpuid.c            |  135 +++++++++--
 tools/libxl/libxl_create.c           |  112 ++++++++-
 tools/libxl/libxl_device.c           |   12 +-
 tools/libxl/libxl_dm.c               |    4 +
 tools/libxl/libxl_dom.c              |   48 ++++
 tools/libxl/libxl_internal.h         |   62 ++++-
 tools/libxl/libxl_json.c             |  411 +++++++++++++++++++++++++++++-----
 tools/libxl/libxl_json.h             |   37 ++-
 tools/libxl/libxl_nocpuid.c          |   13 ++
 tools/libxl/libxl_types.idl          |   72 +++---
 tools/libxl/libxl_types_internal.idl |    4 +-
 tools/libxl/libxl_utils.c            |   58 ++++-
 tools/libxl/libxl_utils.h            |    7 +
 tools/libxl/libxl_uuid.c             |    4 +-
 tools/libxl/libxl_uuid.h             |    6 +-
 tools/libxl/xl_cmdimpl.c             |  374 +++++++++++++------------------
 tools/libxl/xl_sxp.c                 |    7 +-
 24 files changed, 1810 insertions(+), 407 deletions(-)

-- 
1.7.10.4

_______________________________________________
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®.